3

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

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

或在类实现中:

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

它们之间有什么区别吗?

4

1 回答 1

0

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

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

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

于 2013-04-24T22:45:56.327 回答