我在想,是否可以使用块来初始化
我认为,在Swift 3中,这是针对计时器引入的。
由于它对我不起作用,因此我已经实现了类似于这里发布的代码。
这是我的代码:
当我像这样创建一个
UIGestureRecognizer
,而不必为其创建单独的函数。我认为,在Swift 3中,这是针对计时器引入的。
由于它对我不起作用,因此我已经实现了类似于这里发布的代码。
这是我的代码:
class TapGestureRecognizer: UITapGestureRecognizer {
private var closure: (() -> ())?
init() {
super.init(target: TapGestureRecognizer.self, action: #selector(self.runAction))
}
convenience init(for view: UIView, block: @escaping (() -> Void)) {
self.init()
closure = block
view.addGestureRecognizer(self)
}
func runAction() {
print("executed")
if closure == nil { return }
closure!()
}
}
当我像这样创建一个
TapGestureRecognizer
:TapGestureRecognizer(block: { _ in
print("tapped")
})
我遇到了以下错误:
应用程序因未捕获的异常而终止,原因是:在0x105941598类中发送给+[MyApp.TapGestureRecognizer runAction]方法的选择器未被识别
你有什么想法吗?