使用 swift 中的对象执行选择器 3

Perform Selector With Object in swift 3

我正在尝试使用 swift 3.0

中的对象执行选择器

我有一个只有一个参数的选择器

func imageSelected(aImage : UIImage)

我这样称呼它

viewC.perform(Selector.init("imageSelected:"), with: image, afterDelay: 0.1)

但应用程序崩溃并显示未定义选择器的错误。

当我在 swift 中遇到选择器时,我总是这样做:忽略参数,只使用名称。

你用过这个:

imageSelected:

那个:在那儿做什么?删除它!只需使用方法的名称!

此外,还有这个很棒的#selector语法糖,请使用它:

viewC.perform(#selector(imageSelected), with: image, afterDelay: 0.1)

它开始运行良好,因为我修改了被调用的选择器

来自

func imageSelected(aImage : UIImage)

到这个

func imageSelected(_ aImage : UIImage)

这是 swift 4.0

perform(#selector(yourMethodHere), with: nil, afterDelay: 1)

在您的函数前添加@objc 标志

@objc public func yourMethodHere(){
     //your code here
}