我有一个显示一些信息的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秒。
要解决这个问题的想法吗?
塞巴斯蒂安
答案 0 :(得分:1)
似乎XML解析正在主线程上进行。解析器可能完全控制线程,并且在解析完成之前不会放弃它。在那个时候,UI将有机会让UITableView
更新,这就是为什么你看到一切都在最后发生的原因。我的建议(如果你没有以这种方式实现的话)就是在一个线程上执行XML解析,留下主线程进行UI更新和其他用户交互。