2017-05-14 10 views
0

私はこの#selectアクションでUIButtonを使用して関数を作成するにはどうすればよいですか?

のようなものを、このセレクタメソッド内で機能を追加するのではなく関数自体を参照することが可能であるならばダウン

right.addTarget(sceneto, action: #selector(pageUp), for: .touchDown) 

ボタン上のこのメソッドの実行を持っているしかし、私は思っていたUIButtonを持っています

right.addTarget(sceneto, action: #selector({print("hello world")}), for: .touchDown) 

答えて

0

残念ながら、これはできません。セレクタは関数の名前に過ぎず、swiftのクロージャは「無名」関数または「匿名」関数です。

私は可能な状況/回避策の1つについて詳しく述べる同様の質問に回答hereを作成しました。

1

this answerをお読みください。

それは言う:

セレクタは、対物-Cの特徴であるとのみ、動的オブジェクト - Cランタイムに露出されている方法で使用することができます。純粋なSwiftメソッドのセレクタを持つことはできません。

と呼ばれているのObj-Cのランタイムからの方法(あなたは、セレクタによって参照されているすべての関数の@objcタグを必要とする理由です)とセレクタとしてクロージャを渡す方法はありません。

関連する問題