- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Swiftについて教えてください)
Swiftでviewのタップを検知する方法
このQ&Aのポイント
- Swiftでviewのタップを検知する方法を教えてください。
- ビルドは成功するものの、シミュレーターでクリックすると落ちてしまいます。
- terminating with uncaught exception of type NSExceptionと表示されます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
viewDidLoadの終了の閉じカッコ「}」の位置に注目してください。 質問のコードでは、myView_TappedはviewDidLoadの内部に定義されています。 myView_TappedをviewDidLoadの外(で、かつViewControllerの内部)に定義すれば問題なく動作するはずです。 swiftは関数の中に関数を定義することができます(これをネスト関数と言います)が、定義元の関数を終了するとそのネスト関数は消滅します。このため、タップされた時にネスト関数を呼び出そうとしても既に存在しないことになります。ネスト関数をプロパティに保持しておけば、消滅せずタップ処理時に呼び出すことも可能ですが、今回はそのようなことをするつもりはなくて、たまたま閉じカッコの位置を間違えただけなのだろうと思います。
お礼
回答ありがとうございました。viewDidLoadの中で定義していたことを分かってませんでした。