1

这几天我一直被这个内存问题弄糊涂了。在我的 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:universalParser 的 AIDXMLParser.m

DDXMLDocument *doc = [[DDXMLDocument alloc] initWithData:xmlData options:0 error:nil];
[doc release];

当我运行我的应用程序时。我使用 [Activity Monitor] 来捕捉我的内存使用情况。

之前:[Real memory size] 为 40.7M

之后:【实际内存大小为63.1M

增加的内存 (63.1M-40.7M) 永远保留在那里。

一切正常。我尝试过使用 TBXML 而不是 KissXML。使用 Instruments-Profile/Analyze 进行测试,但仍然没有错误或警告。我不知道我错在哪里。

还有其他人面临同样的问题吗?

4

1 回答 1

1

这可能是因为您的 NSData 的大小,请尝试拆分您的 XML 并进行多次解析。

我对 10MB 以上的 JSON 也有同样的问题。

于 2012-09-11T08:56:24.407 回答