And*_*rew -1 iphone getter setter objective-c ios
我经常使用二传手.这是我对此的代码:
.H:
@property (nonatomic, strong) NSDate *lastSyncDate;
Run Code Online (Sandbox Code Playgroud)
.M:
-(void)setLastSyncDate:(NSDate *)lastSyncDate {
_lastSyncDate = lastSyncDate;
//Do something
}
Run Code Online (Sandbox Code Playgroud)
然后我输入了一个getter方法:
-(NSDate *)lastSyncDate {
//Something happens
return lastSyncDate;
}
Run Code Online (Sandbox Code Playgroud)
然后_lastSyncDate标识符发出unidentified identifier错误.
我不确定为什么会这样?
它应该是
return _lastSyncDate;
Run Code Online (Sandbox Code Playgroud)
在getter方法中.默认情况下,合成的实例变量具有前导下划线(您已在setter方法中使用它).
此外,如果同时提供setter和getter方法,则必须显式合成该属性:
@synthesize lastSyncDate = _lastSyncDate;
Run Code Online (Sandbox Code Playgroud)
如果为只读属性提供getter,也会发生同样的情况.仅当缺少必需的访问器方法时,才由编译器合成该属性.