0

由于 Xcode 现在自动添加了一个 @synthesis,我如何声明一个没有相应 ivar 的属性?

4

2 回答 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 回答