Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.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 如何维护xml解析的巨大结果_Iphone - Fatal编程技术网

Iphone 如何维护xml解析的巨大结果

Iphone 如何维护xml解析的巨大结果,iphone,Iphone,我正在开发一个应用程序。在其中,我从xml解析中获得了1000个结果。每个结果都有不同的属性。因此,我为属性创建一个类,并为每个结果创建一个对象。我将结果保存在一个数组中。我的怀疑是因为这是很多结果,我可能会面临记忆问题。如果这是一个问题,我该如何处理?请告诉我如何做到这一点。下面的讨论对Objective-C中的内存管理进行了很好的解释 希望这能回答您的问题…如果您正在解析一个非常大的文档,请使用NSXMLParser和委托对象来解析文档。解析器不会创建一个庞大的对象树来表示XML,而是在每

我正在开发一个应用程序。在其中,我从xml解析中获得了1000个结果。每个结果都有不同的属性。因此,我为属性创建一个类,并为每个结果创建一个对象。我将结果保存在一个数组中。我的怀疑是因为这是很多结果,我可能会面临记忆问题。如果这是一个问题,我该如何处理?请告诉我如何做到这一点。

下面的讨论对Objective-C中的内存管理进行了很好的解释


希望这能回答您的问题…

如果您正在解析一个非常大的文档,请使用
NSXMLParser
和委托对象来解析文档。解析器不会创建一个庞大的对象树来表示XML,而是在每次遇到新属性、元素等时调用您的委托。这样,您就可以直接构建数据对象,而不会在中间XML解析树表示上浪费内存

执行此操作后,可以在创建对象时保存对象,也可以成批保存对象


如果您非常关注内存,那么实际上可以在下载输入流时使用NSXMLParser来解析输入流,因此您甚至不需要在内存中保存完整的XML文本。(为了避免中断,您也可以下载到磁盘文件,然后从文件中解析。)

他不是在问保留/释放,而是在问如何避免内存耗尽。