我正在尝试使用 swift 3.0
中的对象执行选择器我有一个选择器,它有一个参数
func imageSelected(aImage : UIImage)
我称之为
viewC.perform(Selector.init("imageSelected:"), with: image, afterDelay: 0.1)
但是应用程序因错误而崩溃,导致选择器未定义。
答案 0 :(得分:8)
这是我在swift中遇到选择器时经常做的事情:忽略参数,只需使用名称。
你用过这个:
imageSelected:
:
在那里做什么?删除它!只需使用方法的名称!
此外,还有一个很棒的#selector
语法糖,请使用它:
viewC.perform(#selector(imageSelected), with: image, afterDelay: 0.1)
答案 1 :(得分:5)
它开始运作良好,我修改了名为
的选择器来自
func imageSelected(aImage : UIImage)
到这个
func imageSelected(_ aImage : UIImage)
答案 2 :(得分:4)
这是Swift 4.0的版本
perform(#selector(yourMethodHere), with: nil, afterDelay: 1)
在函数之前添加@objc标志
@objc public func yourMethodHere(){
//your code here
}