Swift:手势识别器无法识别的选择器已发送至实例
Swift: Gesture Recognizer unrecognized selector sent to instance
我正在尝试在 XCode 中制作手势识别器,以便我可以点击我的 MKMapView 并执行一些操作。但是,每当我长按地图时,我都会收到 "unrecognized selector sent to instance"。
这是我在 viewDidLoad 中的代码:
let gestureRecognizer = UILongPressGestureRecognizer(target: self, action: "handleTap:");
self.mapViewPlace.addGestureRecognizer(gestureRecognizer);
下面是函数:
func handleTap(gestureReconizer: UILongPressGestureRecognizer) {
}
有什么想法吗?
请给 Neo 点赞。您需要将语法更改为:
let gestureRecognizer = UILongPressGestureRecognizer(target: self, action: #selector(handleTap)
旁注:对于 Swift,您不需要在代码行末尾使用分号。
默认情况下 Swift 生成的代码仅适用于其他 Swift 代码,但是如果您需要与 Objective-C 运行时交互——例如所有 UIKit——您需要告诉 Swift 该怎么做。
所以只需添加它并修改选择器声明:
@objc func handleTap(gestureReconizer: UILongPressGestureRecognizer) {
...
}
...
let swipe = UISwipeGestureRecognizer(target: self, action: #selector(handleTap(gestureReconizer:)))
我正在尝试在 XCode 中制作手势识别器,以便我可以点击我的 MKMapView 并执行一些操作。但是,每当我长按地图时,我都会收到 "unrecognized selector sent to instance"。
这是我在 viewDidLoad 中的代码:
let gestureRecognizer = UILongPressGestureRecognizer(target: self, action: "handleTap:");
self.mapViewPlace.addGestureRecognizer(gestureRecognizer);
下面是函数:
func handleTap(gestureReconizer: UILongPressGestureRecognizer) {
}
有什么想法吗?
请给 Neo 点赞。您需要将语法更改为:
let gestureRecognizer = UILongPressGestureRecognizer(target: self, action: #selector(handleTap)
旁注:对于 Swift,您不需要在代码行末尾使用分号。
默认情况下 Swift 生成的代码仅适用于其他 Swift 代码,但是如果您需要与 Objective-C 运行时交互——例如所有 UIKit——您需要告诉 Swift 该怎么做。
所以只需添加它并修改选择器声明:
@objc func handleTap(gestureReconizer: UILongPressGestureRecognizer) {
...
}
...
let swipe = UISwipeGestureRecognizer(target: self, action: #selector(handleTap(gestureReconizer:)))