在Objective-C中,例如一个人不想放在头文件中的变量,可以将它们放在类扩展中:
@interface MyClass () {
NSString *myInstanceVariable;
}
// ...
@end
或在类实现中:
@implementation MyClass {
NSString *myInstanceVariable;
}
// ...
@end
它们之间有什么区别吗?
答案 0 :(得分:0)
在您发布的第一个示例中,myInstanceVariable在接口中声明但未显式声明为private,因此它受保护,而不是私有。受保护是默认设置。
在您发布的第二个示例中,myInstanceVariable在实现中而不是在接口中声明,因此它是私有的。
我的偏好是在界面中将其列为@private。