我花了两天的时间尝试单击一个视图(单击屏幕中的任意位置)。我已经尝试了解决这个问题的各种变化。在DVC类中,所有内容都使用@IBActions,将视图重命名为@IBAction等。除了以下内容之外,我不会得到任何其他错误:“ [UIView评分:]:无法识别的选择器发送到实例”
class DataViewController: UIViewController, UIGestureRecognizerDelegate {
var tappy = UITapGestureRecognizer()
override func viewDidLoad() {
self.tappy = UITapGestureRecognizer(target:self.view, action:"score:")
self.tapView!.addGestureRecognizer(self.tappy)
}
}
func score(sender:UITapGestureRecognizer!) throws {
print("tapped")
}
答案 0 :(得分:4)
一个问题是,您的action:
选择器"score:"
与您将方法声明为func score(sender:UITapGestureRecognizer!) throws
时与Objective-C所看到的内容不对应。它看到"score:error:"
。最简单的解决方案是删除throws
,因为"score:error:"
不能是点击手势识别器的操作方法签名。
此外,正如@dan指出的那样,score
不在self.view
但在self
。因此,您还需要更改target:
。