【发布时间】:2011-03-30 00:31:37
【问题描述】:
我正在尝试找到与 Java 枚举类型或“公共静态最终”对象等效的 Objective-C,例如:
public enum MyEnum {
private String str;
private int val;
FOO( "foo string", 42 ),
BAR( "bar string", 1337 );
MyEnum( String str, int val ) {
this.str = str;
this.val = val;
}
}
或者,
public static final MyObject FOO = new MyObject( "foo", 42 );
我需要创建常量(当然),并且可以在导入相关 .h 文件的任何地方或全局访问。我尝试了以下方法但没有成功:
Foo.h:
static MyEnumClass* FOO;
Foo.m:
+ (void)initialize {
FOO = [[MyEnumClass alloc] initWithStr:@"foo string" andInt:42];
}
当我这样做并尝试使用FOO 常量时,它在str 和val 变量中没有值。我已经通过使用NSLog 调用验证了initialize 实际上正在被调用。
此外,即使我在代码测试块中引用了FOO 变量,Xcode 还是用注释'FOO' defined but not used 突出显示了上面显示的 .h 文件中的行。
我完全糊涂了!感谢您的帮助!
【问题讨论】:
标签: java objective-c constants