我很感激有关内存泄漏的一些支持。
我在数组中使用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被释放,所以我迷路了。
感谢任何建议。
答案 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];