最佳答案
我正在以编程方式向我的一个视图添加一个 UITapGestureIdentiizer:
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’的参数没有引用‘@Objecc’方法、属性或初始化程序。
酷,所以我在 handleTap 签名中添加了@objecc:
@objc func handleTap(modelObj: Model) {
// Doing stuff with model object here
}
现在我得到一个错误“ Method can not be mark@objecc,因为这个参数的类型不能在 Objective-C 中表示。
这只是一张建筑物地图的图片,还有一些指示兴趣点位置的图片。当用户点击其中一个引脚时,我想知道他们点击了哪个感兴趣的点,我有一个描述这些感兴趣点的模型对象。我使用这个模型对象来给图钉图像它的坐标在地图上,所以我认为这会很容易,我只是发送对象的手势处理程序。