如何使用Swift #selector语法解决“模糊使用”编译错误的问题?

如何使用Swift #selector语法解决“模糊使用”编译错误的问题?

假设我的课程中有这两种方法:

@objc func test() {}@objc func test(_ sender:AnyObject?) {}

现在我想使用Swift 2.2的新#selector语法来创建一个与这些方法中的一个相对应的选择器func test()。我该怎么做?当我尝试这个:

let selector = #selector(test) // error

......我得到一个错误,“模糊地使用test()。” 但如果我这样说:

let selector = #selector(test(_:)) // ok, but...

......错误消失了,但我现在指的是错误的方法,一个参数的方法。我想引用没有任何参数的那个。我该怎么做?

[注意:这个例子不是人为的。NSObject有Objective-C copycopy:实例方法,Swift copy()copy(sender:AnyObject?); 所以问题很容易在现实生活中出现。]


qq_遁去的一_1
浏览 570回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP