以下代码
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"]]];
}
写入textLabels数组正确的字符串值,但模拟器上的标签不会更改。为什么呢?
答案 0 :(得分:5)
您似乎认为询问标签的文本会返回标签值的可更新引用,但事实并非如此。返回的字符串是一个不可变对象,您的代码只是将这些值替换为其他不可变值。
要更新标签,您应该在数组中保留对标签本身的引用,然后您可以索引到该数组并设置每个标签的文本。您不需要将任何文本存储在数组中。
您可以手动或使用IBOutletCollection
将标签添加到数组中,具体取决于您的UI定义。