2014-09-29 9 views
17

Ich habe versucht, eine Klasse gehören namens ‚Name‘ und ich habe einen Fehler:Swift Compilerfehler: Die Verwendung von ungelösten Kennung ‚name‘

Swift Compiler Error: Use of unresolved identifier 'name' 

Die Klasse existiert und enthält keine Fehler kompilieren.

+0

Ein Code-Snippet zeigt genau Hinzufügen, wie Sie die Klasse deklariert wäre sehr hilfreich, vor allem für andere, die mit demselben Problem konfrontiert sind. –

Antwort

58

Es könnte ein paar mögliche Probleme geben.

  1. Eine der Klassen hat ein Testing Ziel und andere nicht. Sie müssen sogar alle Ihre Klassen in das Testziel aufnehmen oder keine davon.

  2. Wenn es Objective C-Klasse ist, überprüfen Sie, ob die Klasse in ObjectiveC Bridging-Header-Datei ist.

  3. Wenn es NSManagedObject-Unterklasse ist. Fügen Sie vor der Klassendeklaration @objc(className) hinzu.

  4. Wenn es Teil eines anderen Rahmens ist, stellen Sie sicher, dass die Klasse oder Funktion public

+0

Beispiel, wie es fehlschlägt, bitte ... – Grimxn

+3

Zum Beispiel, wenn eine Klasse ein Testziel hat und die zweite nicht –

+0

Hmm, ich habe nur ein Ziel, das Build-Ziel, und es funktioniert immer noch nicht. Noch mehr Tipps Vojtech? –

6

ist ich auch dieses hatte. Sie werden wahrscheinlich feststellen, dass Ihre erste Klasse in Ihrem Testmodul enthalten ist und dieser "Name" nicht. Wenn Sie eine Klasse in den Test einbeziehen, muss jede Klasse, auf die sie verweist, getestet werden.

5

Ich hatte dieses Problem auch. Ich habe versucht, Klasse 1 innerhalb des Codes in Klasse 2 zu verweisen. Mein Problem war, dass Klasse 2 Zielmitgliedschaften in A und B hatte und Klasse 1 hatte nur Ziel Mitgliedschaften in Klasse A.

Sie können dies beheben, indem Sie die Registerkarte Dienstprogramme (am weitesten rechts in der oberen Leiste des Xcode-Fensters), und stellen Sie sicher, dass die gleichen Kontrollkästchen für beide Klassen im Unterelement Zielmitgliedschaft aktiviert sind.

-1

Fügen Sie einen weiteren zu der Liste hinzu.

  1. Wenn es Teil eines anderen Frameworks ist, stellen Sie sicher, dass die Einstellungen "Nur aktive Architektur erstellen" identisch sind.
+0

Mit diesen Einstellungen können Sie die App nicht freigeben. Stellen Sie sicher, dass Sie ein Framework verwenden, das Ihre Architekturen unterstützt. –

+0

Nicht wahr. Sie können die App freigeben, solange "Nur aktive Architektur erstellen" für "Release" auf "Nein" gesetzt ist. Ich habe den Fehler "Verwendung eines nicht aufgelösten Bezeichners" festgestellt, wenn mein Framework es auf "Ja" für "Debug" gesetzt hatte, aber meine App "Nein" für "Debug" hatte. –

1

Problem Got gelöst durch

Target -> Phasen beim Aufbau -> Compile Sources -> die Klassendatei