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?
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
Si vous avez un getter explicite, la propriété automatique synthétisée sera ignoré.
Ensuite, vous devez utiliser @synthesize property = _property
mise à jour du pod
alors vous pouvez maintenant mettre à jour vers 3.7.1 qui a corrigé ce bogue.