xCode 6如何解决“使用未声明的标识符”进行自动属性综合?
我正在使用xCode6 Beta 3,并遇到以前编译好的代码(xCode 5.1.1或xCode6 beta 2)在访问自动合成的实例variables时突然开始给我“使用未声明的标识符”错误:
- (void)setFinished:(BOOL)finished { [self willChangeValueForKey:@"isFinished"]; _finished = finished; [self didChangeValueForKey:@"isFinished"]; } //ERROR: Use of undeclared identifier '_finished'; did you mean 'finished'?
添加@synthesize finished = _finished;
使错误消失,但有没有办法强制xCode6 Beta 3使用自动属性综合使用下划线表示法?
起初我以为这是一个testing版的bug,但今天我看到,这种types的错误也发生在XCode 6 GM种子上,尽pipe我还没有发现在哪些特定情况下。
无论如何,解决的办法是在@implementation块中添加一个综合语句,显式声明伊娃的名字以及属性:
@synthesize property = _property
荚更新
那么你现在可以更新到3.7.1已经修复了这个错误。
如果你有一个明确的getter , 合成的自动属性将被忽略 。
那么你必须使用@synthesize property = _property