我有一个应该很常见的问题。我有一个名为taskList
的数据数组,它来自JSON并具有多个用户数据。到现在为止还挺好。我创建第一个objectForKey:@"desc"
并返回结果(用户描述),但是当我尝试添加另一个objectForKey(例如年龄)时,它只显示年龄:(这是代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell = nil;
cell = [tableView dequeueReusableCellWithIdentifier:@"MyCell"];
if (cell == nil){
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"MyCell"] autorelease];
}
NSLog(@"%@",taskList);
cell.textLabel.text = [[taskList objectAtIndex:indexPath.row] objectForKey:@"desc"];
return cell;
cell.textLabel.text = [[taskList objectAtIndex:indexPath.row] objectForKey:@"age"];
return cell;
}
答案 0 :(得分:1)
改为:
NSString *desc = [[taskList objectAtIndex:indexPath.row] objectForKey:@"desc"];
NSString *age = [[taskList objectAtIndex:indexPath.row] objectForKey:@"age"];
cell.textLabel.text = [desc stringByAppendingString:age];
return cell;
另一个格式化字符串的例子(在这种情况下,唯一的区别是我在两者之间添加了一个空格,但它向您介绍了一个非常有用的方法)(并使用我们在上面创建的两个字符串) :
NSString *textForMyLabel = [NSString stringWithFormat:@"%@ %@", desc, age];
cell.textLabel.text = textForMyLabel;
或者在没有使用临时变量textForMyLabel
的情况下执行相同操作:
cell.textLabel.text = [desc stringByAppendingFormat:@" %@", age];
答案 1 :(得分:0)
在您发布的代码中,您将永远不会达到'年龄'部分,因为它会在设置'desc'后返回。即使您解决了这个问题,您仍然会将desc和age指定给单元格中的相同字段,这可能不是您想要的。