当我有一个getter方法时,Setter方法给出下划线错误

时间:2013-07-03 11:39:55

标签: iphone ios objective-c setter getter

我经常使用setter。这是我对此的代码:

·H:

@property (nonatomic, strong) NSDate *lastSyncDate;

的.m:

-(void)setLastSyncDate:(NSDate *)lastSyncDate {
    _lastSyncDate = lastSyncDate;

    //Do something
}

然后我输入了一个getter方法:

-(NSDate *)lastSyncDate {
    //Something happens
    return lastSyncDate;
}

然后_lastSyncDate标识符发出unidentified identifier错误。

我不确定为什么会这样?

1 个答案:

答案 0 :(得分:5)

应该是

return _lastSyncDate;
在getter方法中

。默认情况下,合成的实例变量具有前导下划线 (你已经在setter方法中使用它了。)

另外,如果你提供 setter和getter方法,你必须综合 property 显式

@synthesize lastSyncDate = _lastSyncDate;

如果为只读属性提供getter,也会发生同样的情况。 该属性仅在编译时由编译器合成 缺少必需的访问方法。