Нужны ли фигурные скобки в объявлениях @interface в Objective-c? - PullRequest
13 голосов
/ 07 сентября 2011

Компилируется следующий код:

@interface MyClass : ParentClass // missing {
// missing }
@property (nonatomic, copy) NSString *myString;
@end

Мне интересно, действительно ли нужны фигурные скобки в объявлениях @interface.

Ответы [ 2 ]

21 голосов
/ 07 сентября 2011

Нет, раздел { } не обязателен;ваш код будет хорошо компилироваться без него.Это область, где вы объявляете переменные экземпляра, и если вы этого не делаете, вы можете оставить это.Вам даже не нужно объявлять ivars для ваших свойств - компилятор достаточно умен, чтобы добавлять их там, где они нужны.

9 голосов
/ 19 апреля 2012

Компилятор достаточно умен, чтобы добавить ваши @ свойства в класс.

Единственное использование для этих скобок - это когда вы хотите сделать переменную частной, защищенной или специально открытой.

Пример:

@interface Example: NSObject {
@public
    int publicVar;
@private
    int privateVar;
    int privateVar2;
@protected
    int protectedVar;
}
@end
...