Ios xCode 6如何修复;使用未声明的标识符“;用于自动属性合成?

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

我使用的是xCode6 Beta 3,遇到了一个问题,以前编译得很好的代码(xCode 5.1.1或xCode6 Beta 2)在访问自动合成的实例变量时突然出现了“使用未声明的标识符”错误:

- (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上遇到了这个问题,唯一的解决办法就是手动合成。