Ios xCode 6如何修复;使用未声明的标识符“;用于自动属性合成?
我使用的是xCode6 Beta 3,遇到了一个问题,以前编译得很好的代码(xCode 5.1.1或xCode6 Beta 2)在访问自动合成的实例变量时突然出现了“使用未声明的标识符”错误:Ios xCode 6如何修复;使用未声明的标识符“;用于自动属性合成?,ios,compiler-errors,xcode6,automatic-properties,Ios,Compiler Errors,Xcode6,Automatic Properties,我使用的是xCode6 Beta 3,遇到了一个问题,以前编译得很好的代码(xCode 5.1.1或xCode6 Beta 2)在访问自动合成的实例变量时突然出现了“使用未声明的标识符”错误: - (void)setFinished:(BOOL)finished { [self willChangeValueForKey:@"isFinished"]; _finished = finished; [self didChangeValueForKey:@"isFinishe
- (void)setFinished:(BOOL)finished {
[self willChangeValueForKey:@"isFinished"];
_finished = finished;
[self didChangeValueForKey:@"isFinished"];
}
//ERROR:
Use of undeclared identifier '_finished'; did you mean 'finished'?
添加
@synthesis finished=\u finished
使错误消失,但是有没有办法强迫xCode6 Beta 3使用下划线符号自动合成属性?起初我以为这是Beta版的错误,但今天我看到这种类型的错误也发生在xCode6 GM Seed上,尽管我还没有发现具体的情况
无论如何,修复方法是在@implementation块中添加一个synthesis语句,显式声明ivar的名称以及属性:
@synthesize property = _property
吊舱更新
然后您现在可以更新到修复了此错误的3.7.1。如果您有一个显式的getter,自动合成属性将被忽略
然后你必须使用
@synthetic property=\u property
你也有显式的getter方法吗?如果是这样,ivar将不再为您自动合成。是的,您需要@synthesis finished=\u finished代码>如果同时具有getter和setter。这在早期版本的Xcode中也会发生。在SDWebImage-Toolkit中发现了相同的问题。。你已经给出了答案:手动添加@synthetic语句-或者等到xcode发布。这救了我一天,所有人@jeffamaphone这在早期版本的xcode中不会发生,OP可能在MWPhotoBrowser库中有此错误,它过去在xcode 5中工作并编译得很好,安装了xcode 6后突然也出现了此错误。如果它在Pods库中,该怎么办?文件错误。或者修复它并发送给pod所有者一个PR。或者分支它。我刚刚遇到CocoaPods(SDWebImageDownloaderOperation)的问题,添加合成调用解决了所有问题!!!幸亏“溺水者”在Xcode 6.1.1上遇到了这个问题,唯一的解决办法就是手动合成。