由于Xcode现在自动添加@synthesis,如何在没有相应的ivar的情况下声明属性?
答案 0 :(得分:1)
您需要实现getter和setter,然后它将不会自动合成并自动创建一个ivar。
答案 1 :(得分:1)
@interface Obj : NSObject
@property NSString* str;
@end
@implementation
-(NSString*) str {
//TODO:
return @"sdfsdf";
}
-(void) setStr:(NSString*) st {
//TODO:
}
@end
命名约定很简单:
getter与属性同名(例如str),setter必须有set前缀,即setPropertyName(属性名的第一个字母是大写:setStr :)
您还可以添加像atomic,retain,strong等属性,但如果您自己实现属性,它们将无效,但这对您的班级用户来说是一个很好的提示。