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

Deve Tester Punkte 81

In meinem Fall war

[[NSBundle mainBundle] loadNibNamed:@"NameOfTheSubviewNibFile" owner:self options:nil]

der Grund.

Das Ersetzen durch initWithNibName hat das Problem gelöst.

1voto

spaine Punkte 433

Ich habe diesen Fehler festgestellt, der in allen Outlets in einer benutzerdefinierten Klasse auftrat, die ich für eine Prototypzelle einer Tabelle erstellt hatte. Die Outlets waren alle korrekt mit dem Storyboard verbunden, und das Feld Class war im Identitätsinspektor für die Prototypzelle korrekt benannt.

Das Löschen und Neuerstellen der Outlets hat nicht funktioniert. Das Bereinigen des Builds hat nicht funktioniert. Was schließlich funktioniert hat, war die Klasse im Storyboard Identitätsinspektor auf die Standard-Zelle UITableViewCell zu ändern, Enter zu drücken und sie dann wieder in den Namen meiner benutzerdefinierten Klasse zu ändern. Aus irgendeinem Grund hat das funktioniert.

0voto

lee Punkte 7465

Wirklich dummer Fehler von mir. Deshalb habe ich beschlossen, es hier zu teilen, in der Hoffnung, dass es anderen Leuten wie mir helfen wird.

In meinem Projekt habe ich ein weiteres Submodul, und ich habe eine neue Klasse mit demselben Namen wie eine andere Klasse im Hauptmodul benannt. Meine neue Klasse hat KEINE xib-Datei (100% Code), aber eine andere Klasse im Hauptmodul hat eine xib-Datei. Ich denke, Xcode hat die neue Klasse fälschlicherweise mit der xib-Datei im Hauptmodul verknüpft.

Das ist der Grund für den Absturz mit der Meldung:

diese Klasse ist nicht schlüsselwertcodierungskompatibel für den Schlüssel tableView.

0voto

Kyle Venn Punkte 3085

Ich habe buchstäblich jede Option in diesem Thread ausprobiert. Das Einzige, was es für mich behoben hat, war die Umbenennung meiner benutzerdefinierten Ansicht xib-Datei.

Meine benutzerdefinierte Ansicht und die xib hatten den gleichen Namen. Die Umbenennung der xib hat es behoben.

0voto

SaadurRehman Punkte 484

Ich verwende Xamarin.IOS, um das benutzerdefinierte Nib zu erstellen. Schließlich fand ich die Ursache, ging zu Xcode und wählte die Nib-Datei aus. Im Interface Builder wähle die UIView-Klasse und wähle den Connections Inspector aus und entferne die Standardausgänge wie unten gezeigt. Bildbeschreibung hier eingeben

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