2014-07-08 12 views
39

Ich benutze xCode6 Beta 3, und bin in ein Problem, wo ein Code, der zuvor gut kompiliert (xCode 5.1.1 oder xCode6 beta 2) begann plötzlich mir "Verwendung von nicht deklarierten Bezeichner" Fehler beim Zugriff auf eine automatisch synthetisiert Instanzvariable:xCode 6 wie "Verwendung von nicht deklarierten Bezeichner" für automatische Eigenschaftssynthese zu beheben?

- (void)setFinished:(BOOL)finished { 
    [self willChangeValueForKey:@"isFinished"]; 
    _finished = finished; 
    [self didChangeValueForKey:@"isFinished"]; 
} 

//ERROR: 
Use of undeclared identifier '_finished'; did you mean 'finished'? 

Hinzufügen @synthesize finished = _finished; der Fehler weg gehen macht, aber ist es eine Möglichkeit, xCode6 Beta 3 zu verwenden automatische Eigenschaft Synthese mit Unterstrich-Schreibweise zu zwingen?

+15

Verwenden Sie eine explizite Getter-Methode haben Sie auch? Wenn dies der Fall ist, wird der Ivar nicht mehr automatisch für Sie synthetisiert. – rmaddy

+4

Yup, du brauchst '@synthesize finished = _finished;' wenn du sowohl den Getter als auch den Setter hast. Dies geschieht auch in früheren Versionen von Xcode. –

+2

Das gleiche Problem wurde in SDWebImage - Toolkit gefunden. Sie haben bereits die Antwort gegeben: Fügen Sie manuell eine @synthesize-Anweisung hinzu oder warten Sie bis zur Freigabe von xcode. – ThorstenC

Antwort

39

Zuerst dachte ich, es wäre ein Fehler in der Beta-Version, aber heute habe ich gesehen, dass diese Art von Fehlern auch auf dem XCode 6 GM Seed auftritt, obwohl ich erst noch herausfinden muss, in welchen Fällen.

Auf jeden Fall ist das Update eine synthesize Anweisung im @implementation Block hinzuzufügen, explizit den Namen des Ivar sowie die Eigenschaft erklärt:

@synthesize property = _property 
+1

was tun, wenn es in Pods Bibliothek ist – yasirmturk

+1

Datei einen Fehler. Oder repariere es und sende dem Pod-Besitzer eine PR. Oder verzweige es. –

+5

Ich hatte gerade Probleme mit CocoaPods (SDWebImageDownloaderOperation) und das Hinzufügen der synthetisierten Anrufe löste alles !!! Danke "drunstoge" –

3

pod Update

Sie jetzt, dann können Update auf 3.7.1, das diesen Fehler behoben hat.

4

Wenn Sie eine explizite Getter haben, automatische Eigenschaft synthetisiert wird ignoriert werden.

Dann müssen Sie @synthesize property = _property

Verwandte Themen