以下代码编译:
@interface MyClass : ParentClass // missing {
// missing }
@property (nonatomic, copy) NSString *myString;
@end
我想知道声明中的花括号@interface
是否真的必要。
以下代码编译:
@interface MyClass : ParentClass // missing {
// missing }
@property (nonatomic, copy) NSString *myString;
@end
我想知道声明中的花括号@interface
是否真的必要。
不,该{ }
部分不是必需的;没有它,您的代码将编译得很好。这是您声明实例变量的区域,如果您不这样做,您可以将其排除在外。你甚至不需要为你的属性声明 ivars——编译器足够聪明,可以在需要的地方添加它们。
编译器足够聪明,可以将您的 @property 声明添加到类中。
这些括号的唯一用途是当您想要将变量设为私有、受保护或特别公开时。
例子:
@interface Example: NSObject {
@public
int publicVar;
@private
int privateVar;
int privateVar2;
@protected
int protectedVar;
}
@end