我正在学习Swift,需要随时调用我的方法,下面是代码:
var gestureRecognizer = UITapGestureRecognizer()
myView.addGestureRecognizer(gestureRecognizer)
gestureRecognizer.addTarget(self, action: Selector(dismiss(nil)))
返回错误-找不到接受所提供参数的init重载
我也试过像选择器(“dississ:nil”)
和选择器(“dississ:nil”)
都没有成功。
这里是我调用的方法:
func dismiss(completion: (() -> Void)!) {
self.dismissViewControllerAnimated(true, completion: completion)
}
只需将方法的名称作为字符串使用:
gestureRecognizer.addTarget(self, action: "dismiss:")
编辑:在Swift 3.0中,您必须使用以下语法:
gestureRecognizer.addTarget(self, action: #selector(dismiss(_:)))
不能在选择器中传递参数。你只代表有一个带冒号的。此外,您根本不需要使用选择器类型。如果传入字符串文本,它将转换为您的选择器。
gestureRecognizer.addTarget(self, action:"dismiss:")