3

可能重复:
基于 int 计数创建多个变量
Objective C 等效于 PHP 的“变量变量”

我想在 for 循环中使用一些动态变量名,并且对于如何实际引用变量感到困惑。

我有一系列 UILabel 标题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值?

4

2 回答 2

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;
于 2012-03-30T02:31:44.970 回答
0

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

于 2012-03-30T04:47:48.683 回答