取消归档时内存泄漏

时间:2011-09-21 10:59:36

标签: objective-c ipad memory-leaks nsarray nskeyedarchiver

我很感激有关内存泄漏的一些支持。

我在数组中使用NSKeyedArchiver存档了数据。我后来取消了它的存档。从功能的角度来看它运行良好,但是当我运行Instruments for Memory Leaks时,我在解压缩时会出现内存泄漏。

这是代码:

NSArray *arrayToLoad = [[NSArray alloc] initWithArray:[NSKeyedUnarchiver unarchiveObjectWithFile:path]]; 

ballPath = [arrayToLoad copy];

[arrayToLoad release];

其中ballPath是NSArray。

仪器表示100%的泄漏与上面代码中的第一行有关。我显然错过了一些东西,但我无法找到什么。我认为[NSKeyedUnarchiver unarchiveObjectWithFile:path]是自动释放的,并且arrayToLoad被释放,所以我迷路了。

感谢任何建议。

1 个答案:

答案 0 :(得分:0)

谢谢你们。我只是在使用arrayToLoad的副本设置后读取ballPath中的值。仍然没有弄清楚为什么我有内存泄漏,但下面的代码工作,即使我不以任何方式为它感到骄傲:

if ([ballPath retainCount] > 0) {
    [ballPath release];
}

NSArray *arrayToLoad = [[NSArray alloc] initWithArray:[NSKeyedUnarchiver unarchiveObjectWithFile:path]]; 

ballPath = [[NSArray alloc] initWithArray:arrayToLoad];

[arrayToLoad release];