「this class is not key value coding-compliant for the key」の原因

storybordにボタンを配置してアシスタントエディターに繋いで、タップ時にログへ文字列を表示する。
こんなサンプルコードを打ってる時に次のエラーが出て止まってしまった。

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

サンプルコードや自分のコード見なおしたけど怪しいところは無いのでgoogleで調べたところ以下のサイトにこんなことが書いてあった。

Viewファイル(.hと.mm)と、それに関連する箇所の名前を変えたときに、nibファイルのviewにおけるReferencing Outletsに以前の名前のものとのつながりが残されたままだったため、名前が見つからない状態になっていたらしい。

「this class is not key value coding-compliant for the key – よく寝てちょっと食べる」から引用
http://d.hatena.ne.jp/laynts/20120209/1328752756

注目すべきは「名前のもとのつながりが残されたまま」の部分だ。
UIButtonをタップして動作させる場合、アシスタントエディターにcontrol+クリックでドラッグした時にConnectionのタイプを「Action」に変更しなければいけないが「Outlet」のままで設定していた。
あとで気付き、ViewController.mの記述を消したあと、Actionで繋ぎ直したのだがコネクション・インスペクタの接続を削除せず実行していたため表示されていたらしい。
繋がりはあるけど定義がないという状態がダメだったのだろう。
※コネクション・インスペクタはstorybordに配置したUIにを選択してcontrol+クリックするか、ユーティリティエリアの上部にある6つのボタンの一番右のボタンを押せば確認できます。

xcodeやobjective-cになれないうちは結構ありそうなエラーなので注意しよう。

20140217_001