web-dev-qa-db-fra.com

Swift Erreur du compilateur: utilisation de l'identifiant non résolu 'nom'

J'ai essayé d'inclure une classe appelée 'nom' et j'ai eu une erreur:

Swift Compiler Error: Use of unresolved identifier 'name'

La classe existe et ne contient aucune erreur de compilation.

20
Vojtech Vrbka

Il pourrait y avoir quelques problèmes possibles.

  1. L'une des classes a un cible de test et l'autre non. Vous devez même inclure toutes vos classes dans la cible de test ou aucune d'entre elles.

  2. S'il s'agit de la classe Objective C, vérifiez que la classe se trouve dans le fichier d'en-tête de pontage ObjectiveC.

  3. S'il s'agit de la sous-classe NSManagedObject. Ajoutez @objc(className) avant la déclaration de classe.

  4. S'il fait partie d'un framework différent, assurez-vous que la classe ou la fonction est public

61
Vojtech Vrbka

J'en avais un aussi. Vous constaterez probablement que votre première classe est incluse dans votre module de test et que "nom" ne l'est pas. Simplement, si vous incluez une classe dans testing, toutes les classes auxquelles elle fait référence doivent l'être dans testing.

6
Owen Godfrey

J'ai eu ce problème également. J'essayais de référencer la classe 1 dans le code de la classe 2. Mon problème était que la classe 2 avait des appartenances cibles en A et B, et que la classe 1 n'avait que des appartenances cibles en classe A.

Vous pouvez résoudre ce problème en ouvrant l'onglet Utilitaires (bouton le plus à droite dans la barre supérieure de la fenêtre Xcode) et assurez-vous que les mêmes cases sont cochées pour les deux classes dans la sous-section Appartenance cible.

6
Binya Koatz

Vous avez résolu le problème en

Cible -> Phases de construction -> Compiler les sources -> Ajouter le fichier de classe

1
Bindi