扩展与实现中的实例变量

时间:2013-04-24 22:25:42

标签: objective-c instance-variables

在Objective-C中,例如一个人不想放在头文件中的变量,可以将它们放在类扩展中:

@interface MyClass () {
  NSString *myInstanceVariable;
}
// ...
@end

或在类实现中:

@implementation MyClass {
  NSString *myInstanceVariable;
}
// ...
@end

它们之间有什么区别吗?

1 个答案:

答案 0 :(得分:0)

在您发布的第一个示例中,myInstanceVariable在接口中声明但未显式声明为private,因此它受保护,而不是私有。受保护是默认设置。

在您发布的第二个示例中,myInstanceVariable在实现中而不是在接口中声明,因此它是私有的。

我的偏好是在界面中将其列为@private。