1

我有一系列表格视图。当第一个表视图中的项目被按下时,它会调用一个 web 服务,解析一些 xml,然后根据数据生成下一个表视图。我想知道如何在解析 xml 文档中的每个项目后更新表格视图。我尝试将表格视图对象传递给 xml 解析委托,并在完成对单个项目的解析时在表格视图上调用 reloadData,但它仍然等到整个文档完成解析以显示单元格。

4

1 回答 1

1

其他人指出了异步解析 XML 和更新 UI 的优势,但您还应该注意,您选择的 XML 解析器可能是相关的。例如,如果您使用NSXMLParser,它往往会在解析开始之前从远程服务器下载整个 XML 提要(因此,在解析发生时尝试通过更新来改进 UI 几乎没有什么好处,因为主要延迟是从远程服务器下载, 在解析开始之前就已经完成了……与下载远程 XML 提要所花费的时间相比,解析所花费的时间通常可以忽略不计)。

如果您查看 Apple 的XMLPerformance 示例NSXMLParser,它们实际上会比较和对比LibXML2. 后者将随着下载的进行进行解析,而前者在下载完成之前不会开始。(顺便说一句,这不仅会影响用户界面更新的速度,还会影响解析过程的内存占用。)

我还建议您查看 Ray Wenderlich 的文章,如何为您的 iPhone 项目选择最佳 XML 解析器

于 2013-01-08T02:35:42.347 回答