Objective c 取消归档时内存泄漏
我希望得到一些关于内存泄漏的支持 我使用NSKeyedArchiver归档了阵列中的数据。我稍后会把它归档。从功能的角度来看,它工作得很好,但当我运行内存泄漏的工具时,在取消归档时会出现内存泄漏 代码如下:Objective c 取消归档时内存泄漏,objective-c,ipad,memory-leaks,nsarray,nskeyedarchiver,Objective C,Ipad,Memory Leaks,Nsarray,Nskeyedarchiver,我希望得到一些关于内存泄漏的支持 我使用NSKeyedArchiver归档了阵列中的数据。我稍后会把它归档。从功能的角度来看,它工作得很好,但当我运行内存泄漏的工具时,在取消归档时会出现内存泄漏 代码如下: NSArray *arrayToLoad = [[NSArray alloc] initWithArray:[NSKeyedUnarchiver unarchiveObjectWithFile:path]]; ballPath = [arrayToLoad copy]; [arrayT
NSArray *arrayToLoad = [[NSArray alloc] initWithArray:[NSKeyedUnarchiver unarchiveObjectWithFile:path]];
ballPath = [arrayToLoad copy];
[arrayToLoad release];
ballPath是一个垃圾场
仪表显示100%的泄漏与上述代码中的第一行有关。很明显,我遗漏了一些东西,但无法找出是什么。我认为[NSKeyedUnarchiver unarchiveObjectWithFile:path]已自动删除,ArrayLoad已释放,因此我迷路了
任何建议都将不胜感激。谢谢各位。我仅在使用arrayToLoad的副本设置ballPath后读取其值。仍然没有弄清楚我为什么会有内存泄漏,但下面的代码可以工作,即使我对此并不感到自豪:
if ([ballPath retainCount] > 0) {
[ballPath release];
}
NSArray *arrayToLoad = [[NSArray alloc] initWithArray:[NSKeyedUnarchiver unarchiveObjectWithFile:path]];
ballPath = [[NSArray alloc] initWithArray:arrayToLoad];
[arrayToLoad release];
当您使用完
ballPath
后,您是否已经发布了它?您如何处理ballPath?它的保留计数在代码末尾应该是1。