我知道(并且在SO上发现了几个帖子),一个人无法传递选择器的任何其他参数。例如,每当有人点击我的图像视图时,我就会发生以下情况:
imageView.addGestureRecognizer(UITapGestureRecognizer(target: self, action:Selector("tapImage:")))
这是正常的,许多解决方案说如果你想传递一个参数,只需将视图的标签分配给某个东西,然后在tapImage函数中引用它作为发送者。事情是我实际上使用标签值来做其他事情,所以需要以某种方式在其他地方存储另一个值。
我可以将一些真/假(或0/1)值传递给我的TapGestureRecognizer操作" tapImage"这样我可以评估一个表达式?我还需要传递一组类。
我认为唯一的解决方案是在这种情况下使用不同的选择器(例如" tapImageFunctionA" vs." tapImageFunctionB"这很好,但在我走这条路线之前就有了另一种方式?即使这样,我也需要访问一组对象。也许我在视图控制器中设置一个全局变量并以这种方式访问它?
非常感谢!
答案 0 :(得分:0)
我个人会使用带标签的第一个解决方案,以减少关联引用的性能开销(它非常小,但它存在)。此外,标签似乎更多"编程"解决方案,当关联引用时 - 更依赖于技术和实现。