Swift:Gesture Recognizer无法识别的选择器发送到实例

时间:2016-12-12 23:06:42

标签: ios swift mkmapview

我正在尝试在XCode中制作手势识别器,以便我可以点击我的MKMapView并执行一些操作。但是,每当我长按地图时,我都会收到“无法识别的选择器发送到实例”。

这是我在viewDidLoad中的代码:

let gestureRecognizer = UILongPressGestureRecognizer(target: self, action: "handleTap:");
self.mapViewPlace.addGestureRecognizer(gestureRecognizer);

以后是以下功能:

func handleTap(gestureReconizer: UILongPressGestureRecognizer) {

}

有什么想法吗?

2 个答案:

答案 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:)))