UITableView:需要一个liveUpdate(大量的单元格)

时间:2010-05-28 18:20:34

标签: iphone uitableview

我有一个显示一些信息的UITableView。这些信息来自XMLFile。 Xmlfile非常大,大约有500个条目。

我不希望用户必须等到解析完成,我想逐个单元格地添加到TableView。

这是我的代码:

-(void) onFinishedPartDownload:(id)item
{
    if(odvTableViewDelegateController.odvs == nil)
        odvTableViewDelegateController.odvs = [NSMutableArray new];

    if([odvTableViewDelegateController.odvs count]==0)
    {
        genericDelegate.tableView.delegate = odvTableViewDelegateController;
        genericDelegate.tableView.dataSource = odvTableViewDelegateController;
    }

    [odvTableViewDelegateController.odvs addObject:item];

    [genericDelegate.tableView reloadData];
}

每次解析一个项时都会调用此方法,但它会在最后一次重新加载tableView。我没有我想要的liveUpdate,我正在搜索。

调用该方法的间隔大约为0.001到0.0025秒。

要解决这个问题的想法吗?

塞巴斯蒂安

1 个答案:

答案 0 :(得分:1)

似乎XML解析正在主线程上进行。解析器可能完全控制线程,并且在解析完成之前不会放弃它。在那个时候,UI将有机会让UITableView更新,这就是为什么你看到一切都在最后发生的原因。我的建议(如果你没有以这种方式实现的话)就是在一个线程上执行XML解析,留下主线程进行UI更新和其他用户交互。