从数组中设置标签文本,为什么这不起作用?

时间:2013-04-05 15:37:01

标签: xcode arrays object uilabel

我有以下代码无法正常工作,有人可以告诉我原因吗?

如果我将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";
    }

1 个答案:

答案 0 :(得分:1)

当你致电initWithObjects时,我会说,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"];
}