【问题标题】:Selector on multiple objects多个对象上的选择器
【发布时间】:2014-09-15 12:46:13
【问题描述】:

目标 c 中是否有任何规定,以便我可以在多个对象上调用相同的选择器。
像 jQuery 这样的东西。我提到了这个link,但它需要数组中的所有对象来调用选择器ma​​keObjectsPerformSelector
例如我有以下代码:

[_addButton setTarget:myObject];
[_deleteButton setTarget:myObject];
[_editButton setTarget:myObject];

到一行类似的东西

[_addButton, _deleteButton, _editButton setTarget:myObject];

我知道它在 Objective-c 的语法上没有任何意义,但是有什么技巧吗?

【问题讨论】:

  • 当然! makeObjectsPerformSelector
  • 另一个常见的事情是“对于我的子视图中的所有视图 V,如果 V 是 UIButton,则执行此操作”
  • 另一个是 ..“对于所有的 X 在 blah 中,是 X 响应哇,做 x 方式”。查看 respondsToSelector 示例

标签: ios objective-c macos


【解决方案1】:

我更喜欢积木。

[@[self.addButton, self.deleteButton, self.editButton] enumerateObjectsUsingBlock:^(UIButton* btn, NSUInteger idx, BOOL *stop){
    btn.target = myObject;
}];

【讨论】:

    【解决方案2】:

    您可以轻松地将对象放入临时数组中并像这样使用makeObjectsPerformSelector

    [@[_addButton, _deleteButton, _editButton] makeObjectsPerformSelector:@selector(setTarget:) withObject:myObject]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-12
      • 1970-01-01
      • 2011-03-10
      • 2012-10-11
      • 2020-07-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多