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

0voto

Wes Punkte 1009

In meinem Fall hatte ich einen ViewController zum Storyboard hinzugefügt, aber ich hatte ihm keine Storyboard-ID im Designer zugewiesen. Sobald ich ihm eine ID gegeben habe, hat es funktioniert.

Verwendete Xamarin/Visual Studio 2015.

0voto

FranticRock Punkte 3164

Um zu dieser epischen Saga eines Threads hinzuzufügen...

Mein Ansichtscontroller hatte eine Attributierung darüber: @objc(DerNameMeinesViewController)

Dies führte dazu, dass alle Outlets mit dem Fehler "nicht schlüsselwertkonform" abgestürzt sind. Dies war nur ein Problem auf IOS12 und darunter. Auf iOS 13 funktionierte es einwandfrei.

Das Entfernen dieses Modifikators hat dieses Problem behoben. Alle Outlets funktionieren jetzt einwandfrei.

0voto

yoAlex5 Punkte 20661

Fehler: NSUnknownKeyException

'NSUnknownKeyException', Grund: Diese Klasse ist nicht key-value-coding-kompatibel für den Schlüssel

Ich habe diesen Fehler bekommen, als die .xib-Datei (zum Beispiel TableViewCell.xib) den gleichen Namen wie die Zellenklasse (zum Beispiel TableViewCell.swift) hatte

Der richtige Ansatz ist:

TableViewCell.swift -> View.swift <-> View.xib

0voto

Iulian Onofrei Punkte 8365

Stellen Sie sicher, dass Sie die Implementierung der benutzerdefinierten Klasse (auch leer) in der Datei .m wie folgt hinzufügen:

@implementation MySubclass
@end

0voto

Olle Raab Punkte 96

Die Ursache meines Problems war, dass ich eine Storyboard-Datei dupliziert habe (außerhalb von Xcode, wenn ich mich richtig erinnere), dann hatten alle Ansichtscontroller in der duplizierten Datei dieselbe Objekt-ID wie in der originalen Datei. Die Lösung besteht darin, die Ansichtscontroller zu kopieren und einzufügen, dann erhalten sie eine neue Objekt-ID. Sie können die Objekt-ID im Identitätsinspektor sehen.

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