Swift 2 TapGesture Error: "unrecognized selector sent to instance"

Swift 2 TapGesture Error: "unrecognized selector sent to instance"

我花了 2 天时间尝试通过单击来处理单个视图(单击屏幕中的任意位置)。我已经尝试了我能找到的解决这个问题的所有变体。在 DVC Class 中,所有内容都带有 @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")

}

一个问题是您的 action: 选择器 "score:" 与您将方法声明为 func score(sender:UITapGestureRecognizer!) throws 时 Objective-C 看到的不一致。它看到 "score:error:"。最简单的解决方案是删除 throws,因为 "score:error:" 不能作为点击手势识别器的动作方法签名。

此外,正如@dan 指出的那样,score 不在 self.view 中,而是在 self 中。所以你还需要改变你的 target:.