0

我有以下代码不起作用,有人可以告诉我为什么吗?

如果我将 label1.text = @"XX" 放入循环中,则会填充,因此显然与将这些对象添加到数组中有关。我可以这样做吗?

NSMutableArray *labels = [[NSMutableArray alloc] initWithObjects:label0.text,label1.text,label2.text,label3.text,label4.text,nil];
   for(int i=0; i<labelStrings.count;i++) {
       labels[i] = @"XX";
    }
4

1 回答 1

1

当您调用initWithObjectsfetch 时,假设label0.text. 那只是一个字符串值,标签的文本此时的值。它不是用于设置标签文本或类似内容的魔术指针。

然后,当您设置时,labels[i]您只需用不同的字符串替换可变数组中的一个字符串。

做你想做的事情的方法是制作一个标签数组,然后为数组的每个项目设置其text属性。

像这样的东西(直接输入,没试过,所以要小心,这段代码可能有错误):

NSArray *labels = @[label0, label1, label2, label3, label4];
for(int i=0; i<labels.count; i++) {
   [(UILabel*)(labels[i]) setText: @"XX"];
}
于 2013-04-05T15:43:45.273 回答