Подтвердить что ты не робот

Являются ли фигурные скобки требуемыми в объявлениях @interface в Objective-c?

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

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

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

Пример:

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