Хорошо, все еще изменяя настройки при переключении между C, С++, С# и Objective-C, поэтому иногда моя голова вращается. Однако на этот раз я более смущен относительно правильного пути, так как видел как минимум три разных способа объявить статические переменные в Objective-C, а там четвертый, если вы считаете это просто супермножеством самого C. Итак, кто из них прав?
Дополнительный вопрос
Если мы хотим разделить автономную переменную (т.е. не статическую переменную класса, а только определенную в заголовке), это делается так же, как в 'C' (ala с 'extern' в заголовке? )
Вариант A
foo.h
@interface Foo : NSObject{
static int Laa;
}
@end
Foo.m
@implementation Foo
...
@end
Вариант B
foo.h
@interface Foo : NSObject{
}
@end
Foo.m
static int Laa; // <-- Outside of the implementation
@implementation Foo
...
@end
Вариант C
foo.h
@interface Foo : NSObject{
}
@end
Foo.m
int Laa; // <-- Note no word 'static' here like in 'Option B'
@implementation Foo
...
@end
Вариант D
foo.h
static int Laa;
@interface Foo : NSObject{
}
@end
Foo.m
@implementation Foo
...
@end
Вариант E
foo.h
@interface Foo : NSObject{
}
@end
Foo.m
@implementation Foo
static int Laa;
...
@end
Бонусный вопрос...
Вам нужно использовать слово extern
или это только при использовании файлов .c/.С++, а не файлов .m/.mm?