web-dev-qa-db-ja.com

xCode 6自動プロパティ合成の「宣言されていない識別子の使用」を修正する方法

私はxCode6 Beta 3を使用していますが、以前に正常にコンパイルされたコード(xCode 5.1.1またはxCode6 beta 2)が突然私に与え始めた問題に直面しています"Use of undeclared identifier" errors自動合成されたインスタンス変数にアクセスする場合:

- (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にアンダースコア表記を使用した自動プロパティ合成を使用させる方法はありますか?

40
Alex Stone

最初はベータ版のバグだと思っていましたが、今日はこの種のエラーがXCode 6 GM Seedでも発生することがわかりました。

とにかく、修正は@implementationブロックに合成ステートメントを追加し、ivarの名前とプロパティを明示的に宣言することです。

@synthesize property = _property
40
Şafak Gezer

明示的なgetterがある場合、自動プロパティ合成ignoredになります。

次に、@synthesize property = _propertyを使用する必要があります

4
Jakub Truhlář

ポッド更新

これで、このバグを修正した3.7.1に更新できます。

3
iWill