8.2.1スウィフト:パラメータを渡すと、セレクタにスウィフト3のXcodeを使用
方法:
func moveToNextTextField(tag: Int) {
print(tag)
}
ラインは以下の微細コンパイルが、初期化されていない値tag
有する:
let selector = #selector(moveToNextTextField)
Timer.scheduledTimer(timeInterval: 0.2, target: self, selector: selector, userInfo: nil, repeats: false)
を
しかし、私はパラメータを渡す必要があります。以下はコンパイルに失敗します。
let selector = #selector(moveToNextTextField(tag: 2))
Swift Compile Error:
Argument of #selector does not refer to an @objc method, property, or initializer.
セレクタに引数を渡すにはどうすればよいですか?
@ user1107173は、いくつかのコードで答えを更新しました。 – hybridcattt
ヴァディアンは正しいです。タイマーを使用してカスタムパラメータを渡すことはできません。タイマーのuserInfoフィールドにパラメータをインストールする必要があります。セレクタは、パラメータとしてタイマーを渡すことも、パラメータを渡すこともできません。 –