因为 Swift 2.2 中 selector 的新语法,我用在「 在 Target-Action 中使用响应链 」中的方法产生了一个警告,让我们来修正它。
首先我们加入一个协议:
@objc protocol DetailShowable {
@objc func showDetail()
}
之后,我们可以给 Selector
添加一个 extension,就像 Andyy Hope 在他的 这篇:ox:文 中提到的那样,这个 extension 就长这样:
private extension Selector {
static let showDetail = #selector(DetailShowable.showDetail)
}
现在把 action 添加到响应链中就变得 so easy 了,就像这样:
button.addTarget(nil,
action: .showDetail,
forControlEvents: .TouchUpInside)
最后,我们需要让响应链中的一些响应者对象遵循 DetailShowable
协议。
你可以在 github 上找到这些代码。
本文由 SwiftGG 翻译组翻译,已经获得作者翻译授权,最新文章请访问http://swift.gg。