2011-11-30 89 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

泄漏只是告訴你內存是在那裏創建的,但不會在以後發佈。

你現在的任務是找出應該釋放它的東西,但不是。