Ihr Ansichtscontroller hat möglicherweise die falsche Klasse in Ihrem Xib.
Ich habe Ihr Projekt heruntergeladen.
Der Fehler, den Sie erhalten, lautet
'NSUnknownKeyException', Grund: '[ setValue:forUndefinedKey:]: Diese Klasse ist nicht schlüsselwertcodierungsfähig für den Schlüssel string.'
Der Fehler wird durch den Second
Ansichtscontroller in MainWindow.xib
verursacht, der eine Klasse von UIViewController
anstelle von SecondView
hat. Das Ändern zur korrekten Klasse löst das Problem.
Übrigens ist es schlechte Praxis, Namen wie "string" in Objective-C zu haben. Es lädt zu einer Namenskollision zur Laufzeit ein. Vermeiden Sie sie auch in einmaligen Übungs-Apps. Namenskollisionen können sehr schwer zu verfolgen sein und Sie möchten keine Zeit verschwenden.
Ein weiterer möglicher Grund für diesen Fehler: Beim Kopieren und Einfügen von Elementen von einem Controller in einen anderen behält Xcode irgendwie diese Verknüpfung zum ursprünglichen Controller bei, selbst nachdem dieses Element bearbeitet und neu mit dem neuen Controller verknüpft wurde.
Ein weiterer möglicher Grund für diesen Fehler:
Schlechte Outlet.
Sie haben entweder einen Outlet-Namen in Ihrer .h
Datei entfernt oder umbenannt.
Entfernen Sie ihn in der Verbindungsinpektion der .xib
oder .storyboard
Datei.
Noch ein möglicher Grund
(In meinem Fall) Erweiterung von UIView mit bindbaren Eigenschaften und Setzen von Werten für diese bindbaren Eigenschaften (z.B. Schatten, Eckenradius etc.), dann Entfernen dieser Eigenschaften aus der UIView-Erweiterung (aus irgendeinem Grund) aber die folgenden blieben im XML (von foo.storyboard
):
Lösung: Rechtsklick auf foo.storyboard
> Als Quellcode öffnen > Suche nach keyPath (z.B. shadowRadius) > Löschen Sie die , die das Problem verursachen