ushiyaDevLog

iPhoneとかMacとか、家電とか、筋トレとか、なんか色々になりました

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

      2013/08/24

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

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

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

UIの変更をするのでローカライズをひとつだけにして作業してたのですが、ここが問題点でした。

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

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

結論

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

 - iOS