如何使用insertRowsAtIndexPaths将数组内的字典添加到UItableview?

时间:2012-04-28 19:05:08

标签: iphone arrays uitableview dictionary cell

如何使用 insertRowsAtIndexPaths getnewdata 的结果添加到现有的tableView中?我发现了几个例子,但无法弄清楚。

- (void)getfirstdata {
     [...] //get JSON data
     self.data = jsonResult; //a dictionary inside of an array
     [self.tableView reloadData];
}

- (void)getnewdata {
     [...] //get new JSON data which has to be added to top of the table
     self.data = jsonnewResult; //a dictionary inside of an array
     [self.tableView reloadData];
}

(UITableViewCell *) tableView: (UITableView *) table_view cellForRowAtIndexPath: (NSIndexPath *) index_path
    static NSString *CellIdentifier = @"Cell";
    if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
    }
    id celldata = [self.data objectAtIndex:[index_path row]];
    cell.textLabel.text = [celldata valueForKeyPath:@"user.name"];
    cell.detailTextLabel.text = [celldata objectForKey:@"text"];

return cell;
}

1 个答案:

答案 0 :(得分:1)

要获取新内容,您需要添加到数据中,所以......

- (void)getnewdata {
     [...] //get new JSON data which has to be added to top of the table
     [self.data addObjectsFromArray:jsonResult];
     [self.tableView reloadData];
}

确保self.data是NSMutableArray。

修改

我刚想到你可能想要新数据......

NSMutableArray *newModel = [NSMutableArray arrayWithArray:jsonResult];
[newModel addObjectsFromArray:self.data];
self.data = newModel;