代码之家  ›  专栏  ›  技术社区  ›  user289841

UITableView:需要LiveUpdate(大量单元格)

  •  0
  • user289841  · 技术社区  · 16 年前

    我有一个显示一些信息的UITableView。这些信息来自XML文件。 xml文件很大,大约有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 回复  |  直到 16 年前
        1
  •  1
  •   fbrereto    16 年前

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