2011-11-30 134 views
3

我不知道为什么这是给xcode 4.2内存泄漏。由于我没有alloceventArraySave我需要释放它吗?我认为这将被添加到autorelease池中。为什么内存泄漏在Xcode

//Unarchive in to array 
NSMutableArray *eventArraySave = [NSKeyedUnarchiver unarchiveObjectWithFile:savedfilePathName]; 

我需要释放它还是在上面的代码中有任何错误。还要强调,我没有alloc ed eventArraySaveinit ed eventArraySave。在此先感谢:)

回答

0

您发布的代码没有任何问题。

+0

我最近没有测试过它,但我认为'NSKeyedArchiver'应该返回您存档的同一类(可变或不可变)。我相信你正在考虑'NSPropertyListSerialization'和集合序列化操作('writeToFile:...')。 –

+0

@Rob:我刚刚在Mac上测试过,你说得对。感谢您纠正我,我会纠正我的帖子。 –

2

您不应该发布eventArraySave。它会被返回给你,净保留计数为0(自动释放后)。如果你看到这条线的泄漏,那么这表明你过度保留它在别的地方,或者你可能过度保留了一些包含在eventArraySave中的对象(因为这也是分配对象的地方) 。

泄漏工具不会告诉你你的错误在哪里。他们告诉你你在哪里分配了后来泄漏的内存。

0

泄漏只是告诉你内存是在那里创建的,但不会在以后发布。

你现在的任务是找出应该释放它的东西,但不是。