译自:swiftandpainless.com/selector-an…
由于 Swift 2.2 中 Selector 的新语法,我在 “Utilize the responder chain for target action” 一文中使用的方法产生了一个警告,让我们来修复它吧。
协议实现
首先,我们添加一个协议:
@objc protocol DetailShowable {
@objc func showDetail()
}
然后,我们可以像 Andyy Hope 的这篇神奇的博文中描述的那样,为 Selector 添加一个扩展,代码如下:
private extension Selector {
static let showDetail = #selector(DetailShowable.showDetail)
}
将 action 添加到响应链就会像下面这段代码一样简单:
button.addTarget(nil,
action: .showDetail,
forControlEvents: .TouchUpInside)
接下来,在响应者链中的一些响应对象需要满足 DetailShowable 协议。
你可以在 GitHub 找到相关代码。
如有任何知识产权、版权问题或理论错误,还请指正。
https://juejin.cn/post/6844903529715335176
转载请注明原作者及以上信息。