Swift 3.のオブジェクトでセレクターを実行しようとしています
1つのパラメーターを持つセレクターがあります
func imageSelected(aImage : UIImage)
そして私はそれを次のように呼んでいます
viewC.perform(Selector.init("imageSelected:"), with: image, afterDelay: 0.1)
しかし、セレクターが定義されていないというエラーでアプリがクラッシュします。
それはうまく機能し始め、呼び出されているセレクタを変更しました
から
func imageSelected(aImage : UIImage)
これに
func imageSelected(_ aImage : UIImage)
Swiftでセレクターに遭遇したとき、私がいつもすることは次のとおりです。パラメーターを無視し、名前を使用してください。
これを使用しました:
imageSelected:
それは何ですか :
そこにやっている?消して!メソッドの名前を使用するだけです!
また、この素晴らしい#selector
構文糖、それを使用してください:
viewC.perform(#selector(imageSelected), with: image, afterDelay: 0.1)
これはSwift 4.0
perform(#selector(yourMethodHere), with: nil, afterDelay: 1)
関数の前に@objcフラグを追加します
@objc public func yourMethodHere(){
//your code here
}