如果声明 - 有效处理条件

时间:2013-01-05 13:47:18

标签: objective-c ios cocoa-touch

我可以就处理这种说法的最有效方式提出一些建议。

我有UISwitch,如果切换on在一个方框中打勾。有数百个这样的盒子

而不是

if (_tickSwitch.on){


  _tickBox1.textValue =  @"√" ;
  _tickBox2.textValue =  @"√" ;
  _tickBox3.textValue =  @"√" ;
  _tickBox4.textValue =  @"√" ;

等...

我试图找出一个条件,问我是否有textValue将文本设置为√

类似

   anyValueThatIs.textValue =  @"√" ;

我无法想到允许的sytax - 具有先前值的任何东西,执行此操作

2 个答案:

答案 0 :(得分:1)

您应该为所有UISwitch组件添加相同的操作目标,例如:

[item addTarget:self action:@selector(toggled:) forControlEvents:UIControlEventValueChanged];

这样你就可以抓住事件并采取相应的行动:

- (IBAction) toggled:(id)sender {
    UISwitch *item = (UISwitch*)sender;
    if (item.on)
      item.textValue = @"√";
}

当然,您需要一个包含所有UISwitch*组件的循环,否则您只是在其他地方移动详细程度。另一个解决方案是将它们子类化为CustomUISwitch组件,该组件在结构中添加目标,从而避免使用容器。

答案 1 :(得分:0)

您应该将所有tickBox放在一个数组中,然后循环该数组以执行测试