1279 Stimmen

Xcode - Wie behebt man den 'NSUnknownKeyException'-Fehler? Grund: ... Diese Klasse ist nicht schlüsselwertcodierfähig für den Schlüssel X"?

Ich versuche, ein UILabel mit einem IBOutlet zu verknüpfen, das in meiner Klasse erstellt wurde.

Meine Anwendung stürzt mit folgendem Fehler ab.

Was bedeutet das?

Wie kann ich das beheben?

*** App-Beendigung aufgrund von unbehandelter Ausnahme 'NSUnknownKeyException', Grund: '[ setValue:forUndefinedKey:]: Diese Klasse ist nicht schlüsselwertcodierfähig für den Schlüssel XXX.'

8voto

MehrozKarim Punkte 170

Dies könnte der Fall sein, wenn Sie ein Komponente aus dem Xib-Interface umbenannt oder gelöscht haben. Das erneute Referenzieren funktioniert für mich.

8voto

kubilay Punkte 4637

Ich hatte gerade dieses Problem in meinem duplizierten Projekt und habe es gelöst, indem ich an 2 Stellen überprüft habe:

1- Stellen Sie sicher, dass die .m-Datei in der Liste steht -> Projekt - Build-Phasen - Kompilierung der Quellen
2- Danach gehen Sie zu Interface Builder (wahrscheinlich tritt dieser Fehler nur bei IB auf) und trennen Sie alle Eigenschaften, Beschriftungen, Bilder usw... Dann verknüpfen Sie alles neu. Ich habe festgestellt, dass ich ein Attribut entfernt habe, aber es war immer noch mit IB verknüpft.

Hoffentlich funktioniert es für einige.

7voto

Jason Punkte 1224

Ein weiteres "nicht konformes" Problem, das ich festgestellt habe, war, als es mir aus irgendeinem Grund gelang, zwei Kopien einer Klasse zu haben.

Ich habe Schlüssel zur falschen Kopie hinzugefügt. Interface Builder hat die Schlüssel immer noch erkannt und mir ermöglicht, sie anzuschließen, aber zur Laufzeit wurde die andere Kopie der Klasse verwendet, die die neuen Schlüssel nicht hatte.

Um herauszufinden, welche die "richtige" Kopie war, habe ich in XCode auf den Klassennamen an anderer Stelle geklickt, um zur richtigen Kopie zu springen, dann habe ich die schlechten ungenutzten Kopien gelöscht (nachdem ich meine Änderungen von der ungenutzten Kopie übernommen habe).

Moral der Geschichte: Duplizierte Klassendateien sind schlecht.

7voto

Ronaldoh1 Punkte 2777

Dieser Fehler ist etwas anderes!

So habe ich es behoben. Ich benutze xcode Version 6.1.1 und benutze swift. Ich habe diesen Fehler jedes Mal bekommen, wenn meine App versucht hat, einen Segue zu machen, um zum nächsten Bildschirm zu springen. Hier ist was ich gemacht habe.

  1. Überprüft, ob die Schaltfläche mit der richtigen Aktion verbunden war. (Das war nicht das Problem, aber immer gut zu überprüfen)
  2. Überprüfen, ob die Schaltfläche keine zusätzlichen Aktionen oder Outlets hat, die Sie versehentlich erstellt haben. (Das war nicht das Problem, aber immer gut zu überprüfen)
  3. Überprüfen Sie die Protokolle und stellen Sie sicher, dass alle Schaltflächen auf dem NÄCHSTEN BILDSCHIRM die richtigen Aktionen haben und wenn es Segues gibt, stellen Sie sicher, dass sie einen eindeutigen Bezeichner haben. (Das war das Problem)
    • Einer der Segues hatte keinen eindeutigen Bezeichner
    • Eine der Schaltflächen hatte eine Aktion und zwei Outlets, die ich versehentlich erstellt habe.
    • Löschen Sie zusätzliche Outlets und stellen Sie sicher, dass die Segues zum nächsten Bildschirm eindeutige Bezeichner haben.

Prost,

7voto

Kiryl Belasheuski Punkte 2563

In meinem Fall hatte ich keine fehlenden Outlets in den XIB-Dateien nach dem Zusammenführen.

Shift + Befehl + K

hat mein Problem gelöst. Ich habe mein Projekt bereinigt und neu erstellt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X