【发布时间】:2016-03-05 02:25:22
【问题描述】:
我正在尝试向所有符合MyProtocol 协议的 UIViewControllers 添加 on-tap 功能。
下面是我的做法:
import UIKit
protocol MyProtocol: class{
var foo: String? {get set}
func bar()
}
extension MyProtocol where Self: UIViewController {
func bar() {
print(foo)
}
}
class TestViewController: UIViewController, MyProtocol{
var foo: String?
override func viewDidLoad() {
super.viewDidLoad()
foo = "testing"
let tapGesture = UITapGestureRecognizer(target: self, action: "bar")
}
点击屏幕时会出现以下结果:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: unrecognized selector sent to instance
我了解该错误,但不知道如何解决。谁能建议如何做到这一点?
【问题讨论】: