0

メモリリークを追跡しようとしています。起動時にドキュメントフォルダーから読み込まれたplistデータを保存するために使用される合成されたNSDictionaryにたどり着きました。初めて実行しますが、漏れはありません。しかし、アプリの後半で、 NSDictonary オブジェクトを上書きする Web 呼び出しを行い、そこにリークが見られます。

更新はうまくいきますが、インストゥルメントでは、NSDictionary を上書きする時点でリークが見られます。

合成された NSDictionary を新しいコンテンツに設定する前に、標準リリースと nil を試しました。次に何を試すべきかわからない。

通常、ここで探している答えがすぐに見つかります。しかし、これは私を困惑させます。

NSData *plistXML = [[NSFileManager defaultManager] contentsAtPath:plistPath];


Hubplist = (NSDictionary *)[NSPropertyListSerialization
                                      propertyListWithData:plistXML
                                      options:NSPropertyListImmutable
                                      format:&format
                                      error:NULL];
4

1 に答える 1

0

Hubplist を保持または割り当てている場合は、上書きする前に解放する必要があります。

NSData *plistXML = [[NSFileManager defaultManager] contentsAtPath:plistPath];

[Hubplist release];
Hubplist = nil;
Hubplist = (NSDictionary *)[NSPropertyListSerialization
                                      propertyListWithData:plistXML
                                      options:NSPropertyListImmutable
                                      format:&format
                                      error:NULL];
// Also make sure to retain it if needed
[Hubplist retain];
于 2012-05-10T21:27:39.430 に答える