Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 下载项目时更新表视图_Iphone_Ios_Multithreading_Asynchronous_Xml Parsing - Fatal编程技术网

Iphone 下载项目时更新表视图

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,它倾向于在解析开始

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

其他人指出了异步解析xml和更新UI的优点,但您还应该注意,您对XML解析器的选择可能是相关的。例如,如果使用
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,你让它异步运行了吗?