0

试图追踪内存泄漏。我将其追溯到一个合成的 NSDictionary,该 NSDictionary 用于存储在启动时从文档文件夹中读取的 plist 数据。第一次运行,没有泄漏。但后来在应用程序中,我进行了一个网络调用,覆盖了 NSDictonary 对象,这就是我看到泄漏的地方。

更新运行良好,但在仪器中,我在覆盖 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 回答