web-dev-qa-db-fra.com

xCode 6 comment corriger «l'utilisation d'un identifiant non déclaré» pour la synthèse automatique des propriétés?

J'utilise xCode6 Beta 3 et je rencontre un problème où un code qui compilait correctement auparavant (xCode 5.1.1 ou xCode6 beta 2) a soudainement commencé à me donner "" Utilisation d'un identifiant non déclaré " erreurs lors de l'accès à une variable d'instance synthétisée automatiquement:

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

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

Ajouter @synthesize finished = _finished; fait disparaître l'erreur, mais existe-t-il un moyen de forcer xCode6 Beta 3 à utiliser la synthèse automatique des propriétés en utilisant la notation de soulignement?

40
Alex Stone

Au début, je pensais que c'était un bug de la version bêta, mais aujourd'hui, j'ai vu que ce type d'erreurs se produit sur le XCode 6 GM Seed également, même si je ' m reste à découvrir dans quels cas particuliers.

Quoi qu'il en soit, le correctif consiste à ajouter une instruction de synthèse dans le bloc @implementation, déclarant explicitement le nom de l'ivar ainsi que la propriété:

@synthesize property = _property
40
Şafak Gezer

Si vous avez un getter explicite, la propriété automatique synthétisée sera ignoré.

Ensuite, vous devez utiliser @synthesize property = _property

4
Jakub Truhlář

mise à jour du pod

alors vous pouvez maintenant mettre à jour vers 3.7.1 qui a corrigé ce bogue.

3
iWill