我正在尝试在XCode中制作手势识别器,以便我可以点击我的MKMapView并执行一些操作。但是,每当我长按地图时,我都会收到“无法识别的选择器发送到实例”。
这是我在viewDidLoad中的代码:
let gestureRecognizer = UILongPressGestureRecognizer(target: self, action: "handleTap:");
self.mapViewPlace.addGestureRecognizer(gestureRecognizer);
以后是以下功能:
func handleTap(gestureReconizer: UILongPressGestureRecognizer) {
}
有什么想法吗?
答案 0 :(得分:6)
请给予Neo信用。您需要将语法更改为:
let gestureRecognizer = UILongPressGestureRecognizer(target: self, action: #selector(handleTap)
旁注:对于Swift,您不需要使用分号代码来结束代码行。
答案 1 :(得分:0)
默认情况下,Swift生成的代码仅对其他Swift代码可用,但是如果您需要与Objective-C运行时进行交互(例如,整个UIKit),则需要告诉Swift该怎么做。
因此只需添加它并修改选择器声明:
@objc func handleTap(gestureReconizer: UILongPressGestureRecognizer) {
...
}
...
let swipe = UISwipeGestureRecognizer(target: self, action: #selector(handleTap(gestureReconizer:)))