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:
.
我花了 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:
.