Swift2入門「unrecognized selector sent to instance 〜」エラーの解決方法
Swift2入門「unrecognized selector sent to instance 〜」エラーの解決方法
Xcode7でSwift2を使用してiPhoneアプリを開発中に発生したエラーの原因と対策をまとめていきます。
エラーの原因は多々あるとは思いますが、iPhoneアプリ開発者の何かのヒントになれば幸いです。
本日のエラー:「unrecognized selector sent to instance 〜」
エラー発生時のソースコード
こんな感じでストーリーボードを使用せずにボタンを用意し、クリックしたら処理を実行するようなサンプルを作成。
let button = UIButton(type: UIButtonType.System) as UIButton button.frame = CGRect(x:100,y:100,width:100,height:100) button.addTarget(self, action: "buttonClick", forControlEvents:UIControlEvents.TouchUpInside) 〜省略〜 func buttonClick(sender: UIButton!){ print("Clicked!") }
実行し、当該ボタンをクリック時に「unrecognized selector sent to instance 〜」が発生しました。
「インスタンスに送信されたインスタンスが認識できません」と訳せます。原因わかりますか?
原因と対応
原因は、
「action: “buttonClick”,」の行の
「buttonClick」の後ろに「:」が付いていないことでした。
ということで、対応方法はシンプルに、
「action: “buttonClick:”,」
としてあげたところエラーは解消されました。
他に考えられる原因としては、
関数名が違ってるということもあり得るでしょう。
TechProjin 開発系基礎講座 連載リンク
基礎からPHPWEBアプリ解発を学ぶなら・・
PHP基礎 連載
AIなどで注目急上昇!これから学ぶならPython!!
独学で学ぶ-pythonプログラミング 連載
汎用性◎ 定番プログラミング言語JAVA
Java基礎講座 連載