为什么从NSMutableArray设置labels.text不起作用?

Art*_*yle 0 arrays json objective-c ios

以下代码

NSMutableArray *textLabels = [[NSMutableArray alloc] initWithObjects:cell.textLabel1.text, cell.textLabel2.text, cell.textLabel3.text, cell.textLabel4.text, cell.textLabel5.text, nil];
                    for (int i=0; i<json.count; ++i)
 {
   textLabels[i] = [NSString stringWithFormat:@"#%@",[json[i] valueForKey:@"text"]]];
 }
Run Code Online (Sandbox Code Playgroud)

写入textLabels数组正确的字符串值,但模拟器上的标签不会更改.为什么?

Wai*_*ain 5

看起来您认为向标签询问其文本会返回对标签值的可更新引用,但事实并非如此.返回的字符串是一个不可变对象,您的代码只是将这些值替换为其他不可变值.

要更新标签,您应该在数组中保留对标签本身的引用,然后您可以索引到该数组并设置每个标签的文本.您不需要将任何文本存储在数组中.

您可以手动将标签添加到数组中,也可以IBOutletCollection根据UI定义添加标签.