可能重复:
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
值?
答案 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