0

かなり一般的な問題があります。taskListこれはJSONからのデータであり、いくつかのユーザーデータがあります。ここまでは順調ですね。最初に作成しobjectForKey:@"desc"て結果(ユーザーの説明)を返しますが、別のobjectForKey(たとえばage)を追加しようとすると、年齢のみが表示されます:(これはコードです:

- (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;
}
4

2 に答える 2

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;

文字列をフォーマットする別の例(この場合の唯一の違いは、2つの間にスペースを追加していることですが、非常に便利な方法を紹介します)(そして上記で作成した2つの文字列を使用します):

NSString *textForMyLabel = [NSString stringWithFormat:@"%@ %@", desc, age];
cell.textLabel.text      = textForMyLabel;

textForMyLabelまたは、一時変数を使用せずに同じことを行うには、次のようにします。

cell.textLabel.text = [desc stringByAppendingFormat:@" %@", age];
于 2012-04-04T15:02:38.447 に答える
0

投稿したコードでは、「desc」を設定した後に戻るため、「age」の部分に到達することはありません。それを修正しても、セル内の同じフィールドにdescとageを割り当てていることになります。これは、希望するものではない可能性があります。

于 2012-04-04T14:45:49.860 に答える