Xcode error: this class is not key value coding-compliant for the key

Xcode error: this class is not key value coding-compliant for the key

本ページはプロモーションが含まれています。

this class is not key value coding-compliant for the key…

Workout TimerのUIを大幅に変更してまして、使わなくなったボタンを削除したところ、
「this class is not key value coding-compliant for the key…」という削除したボタンを指したエラーがでました。

復旧方法

@synthesyze忘れとか、削除し忘れた変数や関数やら、IBでのOutletの削除し忘れとかを確認し修正すべきところは修正したのですが、いっこうにエラーが消えないのです。このままでは、旧アプリを削除してから新しいバージョンをインストールしないといけなくなるので困ってました。

グーグルで調べても上記のことしか出てこず参っていた時に見つけたのが、プロジェクトに追加されたリソースの確認方法でした。別の用事でリソースを確認したかったのでついでに見てみると、問題の出る.xibファイルがローカライズされたフォルダに入っていました。

WorkoutTimerではJPとENの二つのローカライズを使っているのですが、UIの変更をするのでローカライズをひとつだけにして作業してたのですが、それが問題点でした。

IB上ではローカライズがひとつだけで表示されていたのですが、リソースの参照先が別のフォルダのままでした。このせいで別の.xibを読みに行ってしまうのかなと思い、ローカライズ自体を削除し、その時にプロジェクトから削除された.xibファイルを新たにドラッグアンドドロップで追加しなおしました。

これで無事にエラーが消えました。

結論

ローカライズを完全に削除してからUIの変更を行うことが一番大切でした。