我正在通过编程向我的一个视图添加一个UITapGestureRecognizer:
let gesture = UITapGestureRecognizer(target: self, action: #selector(self.handleTap(modelObj:myModelObj)))
self.imageView.addGestureRecognizer(gesture)
func handleTap(modelObj: Model) {
// Doing stuff with model object here
}
我遇到的第一个问题是“'#selector' 的参数不是 '@Objc' 方法、属性或初始化器。”
很好,所以我在 handleTap 签名上添加了 @objc 标记:
@objc func handleTap(modelObj: Model) {
// Doing stuff with model object here
}
现在我收到了错误消息:“Method cannot be marked @objc because the type of the parameter cannot be represented in Objective-C.”
这只是一个建筑物地图的图片,上面有一些标识兴趣点位置的图钉图片。当用户点击其中一个图钉时,我想知道他们点击了哪个兴趣点,我有一个描述这些兴趣点的模型对象。我使用此模型对象来为图钉图片在地图上分配其坐标,因此我认为将对象发送到手势处理程序会很容易。