动态变量命名iOS

时间:2012-03-30 02:26:24

标签: objective-c ios for-loop naming-conventions dynamic-variables

  

可能重复:
  create multiple variables based on an int count
  Objective C Equivalent of PHP's “Variable Variables”

我想在for循环中使用一些动态变量名称,并且难以理解如何实际引用变量。

我有一系列UILabels标题poll0 - poll8。使用for循环,我将它们的text值设置为从数组中相应数字引用的另一个值。例如:

for (int i = 0; i < [pollData count]; i++) {
    label(i value).text = [NSString stringWithFormat:@"%@", [[pollData objectAtIndex:i] toString]]; //sorry for the java-esque method names, just create what I'm used to
}

如何使用i值?

2 个答案:

答案 0 :(得分:5)

你无法完全按照自己的要求行事。最好的方法是将标签放在一个数组中并循环遍历数组:

NSArray *labels = [NSArray arrayWithObjects:poll0, poll1, poll2, ..., nil];
for (UILabel *label in labels) {
    label.text = [[pollData objectAtIndex:i] toString];
}

您可能还想查看IBOutletCollections,因为它们允许您将标签分组到数组中,而无需编写上面的数组初始化代码。相反,您将它放在.h文件中,然后将标签插座挂钩到Interface Builder中的所有标签:

@property (nonatomic, retain) IBOutletCollection(UILabel) NSArray *labels;

答案 1 :(得分:0)

您可以使用UILabel **创建数组,而不是使用NSArray。通过这种方式,您可以使用数组元素而无需转换为UILabel