Iphone 下载项目时更新表视图
我有一系列的表视图。当按下第一个表视图中的项目时,它调用一个Web服务,解析一点xml,然后根据数据生成下一个表视图。我想知道在解析xml文档中的每个项目之后,如何更新表视图。我尝试将table view对象传递给xml解析委托,并在完成单个项的解析时在table view上调用reloadData,但它仍然会等到整个文档解析完成后才显示单元格。其他人指出了异步解析xml和更新UI的优点,但您还应该注意,您对XML解析器的选择可能是相关的。例如,如果使用Iphone 下载项目时更新表视图,iphone,ios,multithreading,asynchronous,xml-parsing,Iphone,Ios,Multithreading,Asynchronous,Xml Parsing,我有一系列的表视图。当按下第一个表视图中的项目时,它调用一个Web服务,解析一点xml,然后根据数据生成下一个表视图。我想知道在解析xml文档中的每个项目之后,如何更新表视图。我尝试将table view对象传递给xml解析委托,并在完成单个项的解析时在table view上调用reloadData,但它仍然会等到整个文档解析完成后才显示单元格。其他人指出了异步解析xml和更新UI的优点,但您还应该注意,您对XML解析器的选择可能是相关的。例如,如果使用NSXMLParser,它倾向于在解析开始
NSXMLParser
,它倾向于在解析开始之前从远程服务器下载整个XML提要(因此,在解析发生时通过更新来改进UI几乎没有什么好处,因为主要的延迟(从远程服务器下载)是在解析开始之前完成的……与下载远程XML提要所花费的时间相比,解析所花费的时间通常可以忽略不计)
如果你看看苹果的,它们实际上比较和对比了NSXMLParser
和LibXML2
。后者会随着下载的进行而解析,而前者直到下载完成才开始。(顺便说一句,这不仅会影响用户界面更新的速度,还会影响解析过程的内存占用。)
我还建议您阅读Ray Wenderlich的文章。其他人已经指出了异步解析XML和更新UI的优势,但您还应该注意,您选择的XML解析器可能是相关的。例如,如果您使用
NSXMLParser
,它倾向于从远程下载整个XML提要解析开始前的服务器(因此,在解析发生时尝试通过更新来改进UI几乎没有什么好处,因为从远程服务器下载的主要延迟在解析开始之前就已经完成了……与下载远程XML提要所花费的时间相比,解析所花费的时间通常可以忽略不计)
如果你看看苹果的,它们实际上比较和对比了NSXMLParser
和LibXML2
。后者会随着下载的进行而解析,而前者直到下载完成才开始。(顺便说一句,这不仅会影响用户界面更新的速度,还会影响解析过程的内存占用。)
我还建议您阅读Ray Wenderlich的文章。您遇到了一个阻塞问题。在一个单独的线程上解析XML并更新主线程上的ui。ui只能在主线程上更新。Christopher,您让它异步了吗?您遇到了阻塞问题。在一个单独的线程上解析XML并使用upda在主线程上更新ui。ui只能在主线程上更新。Christopher,你让它异步运行了吗?