内容显示在UITableViewCell上(嵌套NSArray和NSDictionary)

时间:2015-05-13 05:18:47

标签: objective-c arrays uitableview ios8

在我的iPhone App中,我显示了First Name& UITableViewCell上的姓氏。我使用了以下代码。但我不知道如何在UITableViewCellUITableView上显示内容。

响应数据是:---

responseObject:
{
    data =     (
                (
                        {
                "created_date" = "2015-05";
                description = "Nice blogs...";
                "first_name" = John;
                id = 26;
                image = "profilethumb.png";
                "last_name" = Smith;
                "ref_id" = 16;
                reference = blog;
            }
        ),
                (
        )
    );
    status = success;
}

以下代码:---

        NSDictionary *dict=[arrayData objectAtIndex:indexPath.row];
        strFirstName=[NSString stringWithFormat:@"%@", [dict objectForKey:@"first_name"]];
        strLastName=[NSString stringWithFormat:@"%@", [dict objectForKey:@"last_name"]];
        cell1.lblCommenterName.text = [NSString stringWithFormat:@"%@ %@", strFirstName, strLastName];

如何显示用户名和&单元格上的姓氏。

2 个答案:

答案 0 :(得分:1)

请参阅下面提到的代码:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    // Dequeue the cell.
    NSString *cellIdentifier = @"idCellRecord";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath]; 
    // You must have put an Identifier for the UITableViewCell in the Interface Builder. I've given it as "idCellRecord"
   if (cell == nil) {
       cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
   }

    // Set the loaded data to the appropriate cell labels.
    NSDictionary *dict=[[arrayData objectAtIndex:indexPath.row] valueForKey:@"data"];


    return cell;
}

答案 1 :(得分:0)

您必须已实现以下三个必要的UITableView数据源方法

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    return 1; // As you desire to have sections
}


-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return [arrayData count]; // number of objects within the array
}


-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    // Dequeue the cell.
    NSString *cellIdentifier = @"idCellRecord";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath]; 
    // You must have put an Identifier for the UITableViewCell in the Interface Builder. I've given it as "idCellRecord"
   if (cell == nil) {
       cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];
   }

    // Set the loaded data to the appropriate cell labels.
    NSDictionary *dict=[arrayData objectAtIndex:indexPath.row];
    NSString *strFirstName = [dict objectForKey:@"first_name"];
    NSString *strLastName  = [dict objectForKey:@"last_name"];

    [cell.textLabel setText:strFirstName];
    [cell.detailTextLabel setText:strLastName];

    return cell;
}

注意:

我在IB工具中将UITableView的UITableViewCell样式设置为“Subtitle”。

我建议您在以下教程中阅读并习惯UITableViews:

  1. MakeMeGeek
  2. AppCoda 1
  3. AppCoda 2
  4. 我希望这对你完成你想做的事情有所帮助。

    干杯!