Tips

Swift2入門「unrecognized selector sent to instance 〜」エラーの解決方法

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基礎講座 連載

Recent News

Recent Tips

Tag Search