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.'

3voto

Avinash Jadhav Punkte 452

Sie haben möglicherweise Outlets für das UI-Element, aber keine IBOutlet-Eigenschaft in der .h-Datei

Für alle UI-Elemente im Verbindungsattribut überprüfen Sie die Outlets und deren entsprechende Eigenschaft in der .h-Headerdatei.

Es fehlt möglicherweise ein oder mehrere Eigenschaftseinträge in der .h-Datei.

3voto

Symmetric Punkte 3943

Ich hatte dieses Problem mit Storyboards. Die oben genannte Lösung schien nicht das Problem zu sein, also habe ich den ViewController gelöscht und ihn wieder hinzugefügt (und natürlich das Segue neu verbunden und die Klasse neu zugewiesen), was das Problem behoben hat. Ich weiß nicht, was es wirklich war, aber ich hatte kurz zuvor die zugehörige ViewController-Klasse umbenannt, also hatte das vielleicht etwas durcheinandergebracht.

3voto

priya Punkte 305

Ich hatte das gleiche Problem. Ich habe den Simulator zurückgesetzt. Die Schaltflächensteuerung entfernt und hinzugefügt. Und schließlich einen Clean durchgeführt. :) Danke an Stack Overflow. Irgendwie wurde mein Code in Ordnung gebracht und hat angefangen zu funktionieren.

2voto

Apple Pirate Punkte 69

Ich habe die Eigenschaft aus der Headerdatei gelöscht. Ich konnte keine Referenz dazu finden, aber der Debug-Fehler verwies immer noch darauf. Ich habe festgestellt, dass die Nib-Datei noch eine Referenz dazu hatte. Ich habe den Block gelöscht, der darauf verwies, und alles war behoben.

Im Projekt-Navigator,

Suchen Sie die Nib (xib) Datei. Klicken Sie mit der rechten Maustaste und wählen Sie Quelle anzeigen. Ich habe den folgenden vollständigen Abschnitt gelöscht

        DeleteLabel

    20

2voto

IsPha Punkte 381

Sie müssen möglicherweise den Auslass löschen, ihn neu erstellen, indem Sie von IB nach .h-Datei zeichnen.

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