• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Swiftについて教えてください)

Swiftでviewのタップを検知する方法

このQ&Aのポイント
  • Swiftでviewのタップを検知する方法を教えてください。
  • ビルドは成功するものの、シミュレーターでクリックすると落ちてしまいます。
  • terminating with uncaught exception of type NSExceptionと表示されます。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

viewDidLoadの終了の閉じカッコ「}」の位置に注目してください。 質問のコードでは、myView_TappedはviewDidLoadの内部に定義されています。 myView_TappedをviewDidLoadの外(で、かつViewControllerの内部)に定義すれば問題なく動作するはずです。 swiftは関数の中に関数を定義することができます(これをネスト関数と言います)が、定義元の関数を終了するとそのネスト関数は消滅します。このため、タップされた時にネスト関数を呼び出そうとしても既に存在しないことになります。ネスト関数をプロパティに保持しておけば、消滅せずタップ処理時に呼び出すことも可能ですが、今回はそのようなことをするつもりはなくて、たまたま閉じカッコの位置を間違えただけなのだろうと思います。

dkong
質問者

お礼

回答ありがとうございました。viewDidLoadの中で定義していたことを分かってませんでした。

関連するQ&A