aspec7's garage

エンジニア生活の中で学んだことの備忘録

Xcodeでunrecognized selector sent to instance **** エラー

個人的な覚書です。

メインビューから、サブビューを呼んでそれを閉じるだけのロジック作ってた際に、閉じるボタンを押したときに落ちました。
どうせ、いつものポカだろうと思っていたのですが、思いのほかハマりました。
結論から言えば、やっぱりポカだったんですが。。

エラーメッセージは、抜粋すると以下のようなものでした。

unrecognized selector sent to instance
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ViewController hogeView:]: unrecognized selector sent to instance'


しばらく悩んだあげく原因が特定出来ず、Storyboardの動きも怪しくなっていたので、駄目元で再起動してみるも治らずなんてしているところで、気付きました。


原因は、メソッド名が違っていました・・・

[self.delegate hogeHuga:self];


などとデリゲートで呼び出しているところの定義先が

- (void)hoge:(DestController *)controller

と、Hugaが抜けてました。
何度も確認したところなのに気付かないとか。。

無駄な時間を過ごした訳ですが、もうちょっと分かりやすいエラーメッセージ出してくれないかしらと思ったりして八つ当たりしておきます。
「Undefined」 とか 「Not found」とか他にもわかりやすいのがあるじゃないかと。。