我已经对这个记忆问题感到困惑了好几天。在我的iOS项目中,我使用KissXML作为XML解析器。我的XML文件非常庞大(15M)。现在,记忆问题来了:
这是我的代码
http连接完成部分:
NSData *copyData = [NSData dataWithData:self.httpData]; //self.httpData-recieved from http connection.
dispatch_async(globalQueue,^{ //globalQueue-GCD global queue.
[AIDXMLParser universalParser:copyData]; //Class method for XML Parser.
});
在API中:AIDXMLParser.m的UniversalParser
DDXMLDocument *doc = [[DDXMLDocument alloc] initWithData:xmlData options:0 error:nil];
[doc release];
当我运行我的应用程序时。我使用[Activity Monitor]来捕获我的内存使用情况。
之前:[实际内存大小]为40.7M
之后:[实际内存大小为63.1M
增加的记忆力(63.1M-40.7M)永远留在那里。
一切都运作良好。我尝试过使用TBXML而不是KissXML。使用Instruments-Profile / Analyze进行测试,但仍然没有错误或没有警告。 我不知道我错在哪里。
还有其他人面临同样的问题吗?
答案 0 :(得分:1)
可能是因为NSData的大小,尝试拆分XML并多次进行解析。
我使用10MB +的JSON来解决同样的问题。