UITableView显示不正确,但传入了数据

UITableView显示不正确,但传入了数据,uitableview,ios5,xcode4.3,Uitableview,Ios5,Xcode4.3,我有一个从HTML获取数据的UITableView。抓取工作正常,我通常有大约20个单元格要显示,从1、2、3、4、5到20 但是,在获取之后,单元格仅在所有单元格上显示第一个单元格中的内容。(即1,1,1,1,1,1,1)如果我向下滚动,我将看到6,7,8,20如果我再次向上滚动,我会看到表格变得正常 我在测试代码,在insertNewObject类中发现,如果我在0索引处插入,那么一切都会正常。然而,如果我只是简单地在最后一个索引中添加对象或插入对象,则不会对我有效 以下是我的insertN

我有一个从HTML获取数据的UITableView。抓取工作正常,我通常有大约20个单元格要显示,从1、2、3、4、5到20

但是,在获取之后,单元格仅在所有单元格上显示第一个单元格中的内容。(即1,1,1,1,1,1,1)如果我向下滚动,我将看到6,7,8,20如果我再次向上滚动,我会看到表格变得正常

我在测试代码,在insertNewObject类中发现,如果我在0索引处插入,那么一切都会正常。然而,如果我只是简单地在最后一个索引中添加对象或插入对象,则不会对我有效

以下是我的insertNewObject类代码:

- (void)insertNewObject:(id)sender {
    if (!_objects) {
        _objects = [[NSMutableArray alloc] init];
    }

// Working code, but I want the order from the top 1, 2, 3, ..., 20 rather than 
// 20, 19, 18, ..., 2, 1
// [_objects insertObject:sender atIndex:0];

// And the code below doesn't show up correctly...
//    [_objects insertObject:sender atIndex:(_objects.count)];
//    [_objects addObject:sender];

    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
    [self.tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
}
这很奇怪,我认为这与绘图有关,因为如果我一直上下滚动并“清洁”显示器,UITableView显示的一切都很好。。。但如果我设置了显示,什么也没发生。。。刷新表也不能解决问题

有什么想法吗?
谢谢

在你的问题中没有足够的上下文来确定,但我想也许你在这里做的工作太多了。您可以使用
NSMutableArray
方法
addObject:
将新对象附加到数据数组的末尾。完成此操作后,您应该能够调用
reloadData
,并且您的tableView将重新绘制自身以包含新数据项的单元格

- (void)insertNewObject:(id)sender
{
    if (!_objects) {
        _objects = [[NSMutableArray alloc] init];
    } 
    [_objects addObject:sender];
    [self.tableView reloadData];
}

好啊我做了一件非常愚蠢的事。。。我制作了一个数组,首先将它们放入,然后反向循环并将它们放入带有[_objectsinsertobject:sender atIndex:0]的UITable中;这是一个解决方案,但我认为这不是正确的方法。有办法解决这个问题吗?我试过这个方法,但它仍然显示1,1,1,1,1,7,8,9,…,20。。。我必须通过上下滚动来“清除”单元格,它将返回1,2,3,4,5,6,7,8,9,…,20。。。这很奇怪。。。我在使用UITable时从未体验过这一点。。。