声明没有实例变量的属性

时间:2012-10-23 13:05:01

标签: objective-c

由于Xcode现在自动添加@synthesis,如何在没有相应的ivar的情况下声明属性

2 个答案:

答案 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等属性,但如果您自己实现属性,它们将无效,但这对您的班级用户来说是一个很好的提示。