2011-07-13 104 views
4

內存泄漏餘米試圖消除內存泄漏。以下是我的代碼。的typedef結構

currentTime = CFAbsoluteTimeGetCurrent(); 

CFTimeZoneRef currentTimeZone = CFTimeZoneCopyDefault(); 

todaysDate = CFAbsoluteTimeGetGregorianDate(currentTime, currentTimeZone); 


[currentTimeZone release]; 
currentTimeZone = nil; 

警告:::/myclass.m:87:警告:無效的接收器類型 'CFTimeZoneRef' 的類型定義常量結構

如何釋放內存?

回答

6

隨着你應該使用CFReleaseCFxxxCopyxxx

CFRelease(currentTimeZone); 

編輯:

CoreFoundation類是Toll-Free bridged和你原來的陳述並沒有泄漏,但只需要一個演員。我仍然會建議使用CFRelease因爲你是直接的CoreFoundation工作。

[(NSTimeZone*)currentTimeZone release]; 
0

從文檔:

如果你擁有一個對象,它是你的責任,放棄 所有權(使用CFRelease),當你用它完成。

+0

他明白,他需要釋放它,問題是,他不知道該如何將其釋放。 – gaige

+0

「...(使用CFRelease)......」 – dasdom

0

您正在使用的CoreFoundation調用,因此而不是使用Cocoa的release,你會想撥打:

CFRelease(currentTimeZone); 

爲了釋放複製的數據。

0

試allPeople

CFRelease(allPeople)後relesing地址簿; CFRelease(地址簿);

這爲我工作。