onl*_*man 2 iphone objective-c ios
在.h文件中 -
@interface MyClass : NSObject {
@someAccessibilityModifier int a; // someAccessibilityModifier = @public, @private
}
Run Code Online (Sandbox Code Playgroud)
或.m文件 -
@implementation MyClass {
@someAccessibilityModifier int a; // someAccessibilityModifier = @public, @private
}
Run Code Online (Sandbox Code Playgroud)
两个方面有什么不同(因为两种方式,a可访问性和行为都是一样的)?
在前者,a 是在类的外部访问.你必须指明@private你是否希望这是真的.
在任何情况下,除非您明确希望您的ivar在课堂外可见(并且您几乎肯定不会),否则您应该使用后一种形式(在中指定@implementation).Ivars通常被认为是实现细节,因此不应该在标题中.
唯一的例外是如果你正在编写32位OS X代码,因为它仍然使用脆弱的ABI,它需要在中声明所有的ivars @interface.