我经常使用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
错误。
我不确定为什么会这样?
答案 0 :(得分:5)
应该是
return _lastSyncDate;
在getter方法中。默认情况下,合成的实例变量具有前导下划线 (你已经在setter方法中使用它了。)
另外,如果你提供 setter和getter方法,你必须综合 property 显式:
@synthesize lastSyncDate = _lastSyncDate;
如果为只读属性提供getter,也会发生同样的情况。 该属性仅在编译时由编译器合成 缺少必需的访问方法。