由于 Xcode 现在自动添加了一个 @synthesis,我如何声明一个没有相应 ivar 的属性?
问问题
103 次
2 回答
1
您需要实现 getter 和 setter,然后它不会自动合成并自动创建 ivar。
于 2012-10-23T13:08:16.910 回答
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 等属性,但如果您自己实现属性,它们将不起作用,但这对您的类的用户来说是一个很好的提示。
于 2012-10-23T13:17:37.753 回答