扩展与实现中的实例变量



在Objective-C中,例如不希望放在头文件中的变量,可以将它们放在类扩展名中:

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

或在类实现中:

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

它们之间有什么区别吗?

在你发布的第一个例子中,myinstancvariable在接口中声明,但没有显式声明为私有,因此它是受保护的,而不是私有的。默认为"Protected"。

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

我的偏好是在接口中将它列为@private

相关内容

  • 没有找到相关文章

最新更新