created: 2019-03-16T03:19:07.000Z

swiftのselectorについて

  • コールバックを渡すための仕組みのようなもの?
  • たとえばメソッドを渡してイベントが発生した時の実行するような場合につかう?
var button = UIButton()
button.addTarget(self, action: "tappedButton:", forControlEvents: .TouchUpInside)

今度はSwiftの例ですが、上記のコードではボタンが押されたらselfに定義してあるtappedButtonというメソッドが実行されます。

swiftの以前のバージョンだと↑のように文字列を渡していたが、 最近ではメソッドを #selector インスタンスを生成して引数に渡すようなっている

var button = UIButton()
button.addTarget(self, action: #selector(MyClass.myMethod(_:)), forControlEvents: .TouchUpInside)

こんな感じなのかな? (動かしていない)

参考

みんなのデータ構造
[ad] みんなのデータ構造
Pat Morin, 堀江 慧 (単行本(ソフトカバー))