我有一系列的表格视图。当按下第一个表视图中的项时,它会调用webservice,解析一些xml,然后根据数据生成下一个表视图。我想知道在解析xml文档中的每个项目之后如何更新表视图。我尝试将表视图对象传递给xml解析委托,并在完成解析单个项目时在表视图上调用reloadData,但它仍然等待整个文档完成解析以显示单元格。
答案 0 :(得分:1)
其他人已经指出了异步解析XML和更新UI的优势,但是您还应该注意,您选择的XML解析器可能是相关的。例如,如果您使用NSXMLParser
,它往往会在解析开始之前从远程服务器下载整个XML提要(因此,由于主要延迟,因为通过更新进行更新来尝试改进UI几乎没有什么好处,从远程服务器下载,在解析开始之前就已经完成了......与下载远程XML提要所花费的时间相比,解析所花费的时间通常可以忽略不计。
如果你看看Apple的XMLPerformance sample,他们会比较NSXMLParser
和LibXML2
。后者将在下载过程中进行解析,而前者在下载完成之前不会启动。 (另外,这不仅会影响用户界面更新的速度,还会影响解析过程的内存占用。)
我还建议您查看Ray Wenderlich的文章How To Choose The Best XML Parser for Your iPhone Project。