Я пытаюсь найти Objective-C, эквивалентный либо типам перечисления Java, либо объектам "public static final", таким как:
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 выделил строкув файле .h, показанном выше с комментарием 'FOO' defined but not used
.
Я совершенно сбит с толку!Спасибо за любую помощь!