「’NSUnknownKeyException’, reason: … this class is not key value coding-compliant for the key X」エラーを直す方法
2019.11.26
2019.11.26
質問内容
私はクラス内で「IBOutlet」を使ってUILabelをリンクさせようとしました。
しかし私のアプリケーションは下記のエラーでクラッシュします。
これは何を意味して、どうすれば修正できますか?
*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key XXX.'
ベストアンサー
これは、「MainWindow.xib」にある「SecondView Controller」が「SecondView」の代わりに「UIViewController」のクラスを持っていることが原因です。正しいクラスに変更すると、問題が解決します。
ところで、Objective-Cで「文字列」のような名前にするのは悪い習慣です。ランタイムの名前の衝突を招きます。
練習用アプリでもそれらを避けてください。名前の衝突は追跡するのが非常に難しい場合があり、時間の無駄です。
このエラーの別の考えられる理由1:
あるコントローラーから別のコントローラーに要素をコピー&ペーストするとき、Xcodeはこの要素を編集して新しいコントローラーに再リンクした後でも、元のコントローラーへのリンクを維持してしまいます。
このエラーの別の考えられる理由2:
「Outlet」の紐付けが良くない
原文