【发布时间】:2017-09-01 06:41:59
【问题描述】:
我正在以编程方式将 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
}
现在我收到错误“方法无法标记为@objc,因为参数的类型无法在 Objective-C 中表示。
这只是建筑物地图的图像,其中一些图钉图像指示了兴趣点的位置。当用户点击其中一个引脚时,我想知道他们点击了哪个兴趣点,并且我有一个描述这些兴趣点的模型对象。我使用此模型对象为图钉图像提供地图上的坐标,因此我认为将对象发送到手势处理程序会很容易。
【问题讨论】:
-
您不能将值传递给这样的选择器。为什么不能将该值保存在实例变量中并从选择器方法中访问它?