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.
});

AIDXMLParser.m の API:universalParser 内

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

アプリを実行すると。[Activity Monitor] を使用してメモリ使用量を把握しています。

変更前:[実メモリサイズ]は40.7M

変更後:[実メモリサイズは63.1M]

増加したメモリ (63.1M ~ 40.7M) は永久に残ります。

すべてがうまく機能します。KissXML の代わりに TBXML を使用してみました。テストには Instruments-Profile/Analyze を使用しますが、エラーも警告もありません。どこが間違っているのかわかりません。

他の誰かが同じ問題に直面していますか?

4

1 に答える 1

1

NSData のサイズが原因である可能性があります。XML を分割して、解析を複数回実行してみてください。

10MB以上のJSONで同じ問題が発生しました。

于 2012-09-11T08:56:24.407 に答える