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

1voto

MBH Punkte 15647

Mein Problem begann, nachdem ich den Zielnamen geändert hatte.

Meine eigenen benutzerdefinierten UI-Klassen hatten den Modulnamen auf den alten Zielnamen festgelegt.

Ich habe den Zielnamen auf den neuen geändert und jetzt funktioniert es einwandfrei.

1voto

IanS Punkte 1359

Ich hatte dasselbe Problem, als ich die Haupt-Storyboard als die Startbildschirmdatei benutzt habe. Ich denke, wenn du eine Storyboard als die Startbildschirmdatei benutzt, sollte sie nicht mit dem View-Controller verbunden sein, da sie noch nicht geladen wurde.

1voto

IanS Punkte 1359

Ich bin aus einem anderen Grund auf das gleiche Problem gestoßen: Ich habe das Haupt-Storyboard als Startbildschirmdatei verwendet. Ich denke, wenn Sie ein Storyboard als Startbildschirmdatei verwenden, sollte es nicht mit dem View-Controller verbunden sein, da es noch nicht geladen wurde.

1voto

VoidMain Punkte 948

Ich hatte auch dieses Problem, es lag daran, dass ich eine Ansicht umbenannt habe, indem ich ein neues Outlet erstellt habe. Möglicherweise haben Sie das alte Verbindungs-Outlet im Storyboard.

Was Sie tun müssen, ist das alte Outlet aus dem Storyboard zu entfernen.

  1. Gehen Sie zum Storyboard.
  2. Klicken Sie auf die Schaltfläche "Codeüberprüfung anzeigen" (die mit dem <- -> Zeichen darauf, direkt links vom Show/Hide-Navigator).
  3. Suchen Sie nach dem "Verbindungen" Tag.
  4. Suchen Sie nach dem "Outlet" Tag innerhalb des "Verbindungen" Tags mit dem "property" Attribut, das auf den Namen gesetzt ist, den Sie in der Ausnahme erhalten.
  5. Entfernen Sie dieses Outlet-Tag.
  6. Drücken Sie "Befehl + B", Viel Spaß!

1voto

CommaToast Punkte 10365

Es könnte bedeuten, dass du versuchst, einen Sortierungsdeskriptor ohne ein @-Zeichen am Anfang zu verwenden. Wie hier:

[array valueForKeyPath:@"distinctUnionOfObjects.self"]

Es sollte eigentlich heißen:

[array valueForKeyPath:@"@distinctUnionOfObjects.self"]

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