在swift 3中使用Object执行选择器

时间:2017-01-31 07:00:35

标签: ios swift3 selector ios10

我正在尝试使用 swift 3.0

中的对象执行选择器

我有一个选择器,它有一个参数

func imageSelected(aImage : UIImage)

我称之为

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

但是应用程序因错误而崩溃,导致选择器未定义。

3 个答案:

答案 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
}