0

我似乎很难理解如何在 Objective-C 中使用 Class static consts。

我来自 PHP 背景,我真正想做的是相当于:

我的对象.php

<?
class MyObject {

    const A_VALUE = 1;
    const ANOTHER_VALUE = 2;

}
?>

哪个可以像

MyObject::A_VALUE

在课堂上像

self::A_VALUE

我想在 Obj-C 中复制这种行为,但我知道语法有很大不同。

在 Objective-C 中

我想它看起来会类似于这个

我的对象.h

static int A_VALUE = 1;
static int ANOTHER_VALUE = 2;

@interface MyObject : NSObject;

这在技术上有效,但它会引发大量关于未使用变量的警告

然而

我的对象.h

static NSString *A_VALUE = @"1";
static NSString *ANOTHER_VALUE = @"2";

@interface MyObject : NSObject;

这可以正常工作。尽管没有在任何地方使用。

好吧,我不想使用一大堆字符串,这不仅感觉效率不高(尤其是当有很多字符串时),而且我讨厌查看我的代码并看到一堆

if( [value isEqualToString:A_VALUE] ) {

只是。总的。可能会更糟,但是eww。我会选择:

if( value == A_VALUE ) {

但是我现在所做的工作,但我有点茫然。

Objective C中制作consts(特别是int)的正确方法是什么

大家加油!

4

2 回答 2

1

你应该这样定义你的整数常量:

static const NSInteger kYourConstString = 4;

和你的字符串:

static NSString *const kYourConstString = @"An example";

在您的 .m 文件中。该static关键字将使变量范围成为编译单元的本地变量:您的 .m 文件。

于 2012-11-23T00:38:25.710 回答
0

或者使用enumforint#definefor 字符串。

于 2012-11-23T00:39:51.030 回答