此代码有效:
@interface StringStuff : NSObject {
}
@property (nonatomic, retain) NSString *String1;
@property (nonatomic, retain) NSString *String2;
- (NSString *) doSomethingWithStrings;
@end
但我经常看到:
@interface StringStuff : NSObject {
NSString *String1;
NSSTring *String2;
}
@property (nonatomic, retain) NSString *String1;
@property (nonatomic, retain) NSString *String2;
- (NSString *) doSomethingWithStrings;
@end
是否有理由通常将属性声明为实例变量?它只是被认为是好形式吗?
答案 0 :(得分:6)
旧;它曾经是(并且仍然是32位Mac OS X目标代码),需要ivar声明。在iOS,模拟器和64位OS X上已不再适用。
请注意,@synthesize iVar = iVar_;
通常会阻止在真正需要self.iVar
的情况下进行意外直接访问。