web-dev-qa-db-fra.com

Erreurs Xcode "Utilisation d'un identifiant non déclaré", compile / s'exécute très bien

J'ai un problème incroyablement ennuyeux qui entrave mon flux de travail. Dans mon projet, j'ai des erreurs "Utilisateur d'identifiant non déclaré" partout. Ils font tous référence à une seule classe, en particulier une classe de thème. J'ai vérifié pour tout référencement circulaire avec mes importations, aucun. Je suis vraiment confus.

Voici une capture d'écran des erreurs. Je publierais des erreurs dans le journal de construction pour plus de détails, mais il n'y en a pas. Il se construit et fonctionne très bien ...

enter image description here

J'ai essayé de nettoyer, de supprimer les données dérivées ... Des idées?

44
rnystrom

J'avais le même problème et j'ai remarqué que tous les identificateurs non déclarés ont été déclarés dans des fichiers qui se trouvaient dans mon fichier pch.

Dans cet esprit, j'ai supprimé l'une des lignes #import du fichier pch et recompilé qui a échoué comme prévu. J'ai ensuite remis la ligne supprimée, recompilée et compilée normalement avec toutes les fausses erreurs disparues.

J'espère que cette solution simple aidera quelques-uns d'entre vous si les solutions ci-dessus ne le font pas.

85
Newtz

Ces types d'erreurs sont malheureusement assez courants avec Xcode. Ce serait génial s'il actualisait automatiquement sa liste d'erreurs tout le temps, mais ce n'est pas toujours le cas. Lorsque cela se produit, je vous suggère fortement de redémarrer Xcode, ce qui videra son cache d'erreurs et, espérons-le, résoudra vos problèmes.

9
Richard J. Ross III

Comment incluez-vous cette classe? Dans la plupart des cas, j'inclus simplement la classe explicitement dans l'en-tête et/ou le corps - au lieu du fichier * .pch. Ensuite, cette erreur disparaît dans mon cas.

La suppression des données dérivées fonctionne également de temps en temps. Avez-vous récemment modifié l'emplacement des préférences par hasard. J'ai également eu cette erreur lorsque j'utilise un disque virtuel pour les données dérivées, puis que je reviens à la valeur par défaut. C'est le cas le plus ennuyeux - car il fait apparaître cette erreur dans presque tous les fichiers.

Cette erreur semble se produire plus souvent dans Xcode 4.4 que dans les versions précédentes.

4
user387184

Avez-vous inclus les fichiers de bibliothèque correctement? Jetez un oeil à cela. Parfois, des problèmes ARC peuvent survenir si nous n'incluons pas le fichier correct, ou si quelque chose manque ou ne connecte pas l'interface utilisateur.

2
Preethi

Pour moi, le problème était que j'ai créé le fichier UnityInterface.h/m pour gérer l'interface obj-c vers c #. UnityInterface.h est déjà défini par Unity. J'ai renommé mon propre UnityInterface en _UnityInterface et maintenant tout fonctionne.

1
app developer 27

Il suffit de poster ceci pour quiconque pourrait avoir ce problème plus tard et ne trouve aucune de ces solutions pour fonctionner: si vous avez des instructions #if marquées par pragma qui ne s'exécutent que si le programme est en mode débogage, cela provoquera évidemment tout ce qui est déclaré à l'intérieur de qu'ils ne soient pas déclarés lorsque vous essayez d'archiver/exporter.

1
Delimiter

Peut-être un peu tard pour répondre.

J'ai eu ce problème très récemment. Je corrige cela en mettant à jour mon système d'exploitation, puis en mettant à jour Xcode. J'ai essayé de mettre à jour Xcode seul, mais cela ne s'est pas produit car Xcode 9.4 nécessite OS High Sierra 10.13. *

Bonne mise à jour :)

0
Sdembla

Pour ceux qui ont rencontré le même problème et essayé toutes les solutions ci-dessus sans résultat, vous devriez peut-être essayer quelque chose comme moi. J'ai résolu le problème simplement en débranchant le câble USB de mon iPhone de mon Mac, puis en rebranchant à nouveau ce câble. Après cela, reconstruit à nouveau et toutes les erreurs d'identification non déclarées ont disparu.

0
yunhasnawa

J'ai eu le même problème. Fermer et ouvrir XCode n'a pas aidé.

Je l'ai résolu en vérifiant les erreurs dans d'autres cibles et en les corrigeant (j'avais des tonnes d'erreurs dans ma cible de tests unitaires). J'ai également déplacé les liens d'en-tête des fichiers h vers les fichiers m. Mais je suis à peu près sûr que la première chose était critique.

0
wzbozon

J'ai eu la même erreur. Dans mon cas, c'était sur cette ligne de code:

- (void)playerItemDidReachEnd:(NSNotification *)notification {
      // some code
  }

Mon message d'erreur disait:

Use of undeclared identifier 'playerItemDidReachEnd'

J'ai essayé d'ajouter cette ligne au fichier .h:

- (void)playerItemDidReachEnd:(NSNotification *)notification;

Je l'ai nettoyé, j'ai redémarré mon macbook et j'obtenais toujours l'erreur.

Enfin, j'ai décidé d'essayer de supprimer la ligne dans le fichier .h. Je l'ai ensuite collé dans un fichier texte, puis copié et collé dans le fichier .h.

Maintenant j'ai nettoyé et VOILA '!!! plus d'erreurs. Allez comprendre. Cela se produit parfois dans VBA. D'une certaine manière, il semble y avoir un formatage invisible dans une ligne de code. J'ai donc pensé que cela pourrait arriver avec xCode. Le couper, le coller dans un fichier texte, le couper et le coller à l'endroit où il était - corrigé dans mon cas.

---- MISE À JOUR ----- Ce qui précède a été publié comme ma réponse. Toutes mes excuses, apparemment, il y a autre chose de mal.

Après le nettoyage - mes ERREURS ont disparu. Maintenant, j'ai essayé de créer et d'exécuter mon application. LES ERREURS SONT DE RETOUR! Cette fois, j'ai donc recréé les fichiers de classe après avoir coupé tout le texte et l'avoir collé dans un fichier texte. Je l'ai fait pour mes fichiers .m et .h. Mais maintenant, les erreurs sont de retour après avoir essayé de s'exécuter. DÉSOLÉ. Je ne sais pas comment supprimer ce texte car ce n'est pas une réponse.

J'ai essayé de créer et d'exécuter mon application. LES ERREURS SONT DE RETOUR!

Il y avait aussi un message d'erreur indiquant qu'il me manquait un support (}). Enfin, je regarde la méthode juste avant cette méthode, et j'en ai bien sûr qu'il manquait le crochet de fin! C'était ça!

0

Il compile une erreur de temps

Use of undeclared identifier '<class_name>'

J'ai rencontré ce problème lors du développement de son propre framework et application. Consommateur Objective-C -> Framework statique Objective-C

Report Navigator avait une description claire

umbrella header for module '<module_name>' does not include header '<class_name>.h'

La solution consistait simplement à ajouter #import <class_name>.h dans un en-tête parapluie dans un cadre cible

0
yoAlex5