如何在for语句中访问许多UILabel?

时间:2011-10-13 18:31:53

标签: objective-c for-loop

  

可能重复:
  Objective C Equivalent of PHP's “Variable Variables”

我正在研究Objective-C并对此操作有疑问:

我知道快速枚举更好,但我想知道用FOR方法做到这一点。

在Actionscript 3中我编码:

/*
label0.text = [array objectAtIndex:0];
label1.text = [array objectAtIndex:1];
label2.text = [array objectAtIndex:2];
label3.text = [array objectAtIndex:3];
*/

for (int i = 0; i<4; i++ ) {
    this["label" + i].text = array[ i ];
}

2 个答案:

答案 0 :(得分:0)

研究这个:

NSArray *labelsArray = [NSArray arrayWithObjects: label0, label1, label2, label3, nil];
// this assumes that "array" has already been initialized with the text content  
UILabel *aLabel
for (int i = 0; i<[labelsArray count]; i++ ) {
     aLabel = [labelArray objectAtIndex:i];         
     aLabel.text = [array objectAtIndex:i];
}

这就是全部,如果我理解你的问题。有关所用方法的更多详细信息,请阅读NSArray的类参考。

这有一些实用性,但这个例子非常简单,而且很有学术性。

答案 1 :(得分:0)

您需要标记它们(在代码或构建器中),然后只需在任意位置调用它们:

UILabel*myLabel = (UILabel*)[self.view viewWithTag:i];
myLabel.text = [array objectAtIndex:i];

当然在...当然.. goodluck:)