2010-09-03 74 views

回答

3

你應該釋放或autorelease兩者。對於NSString,任何時候使用alloc + init創建一個對象的時候,你都將它的引用計數設置爲1.你負責在完成時釋放它或者立即自動釋放它,以允許它在運行循環結束時釋放。

對於CFObject,ABMultiValueCopyArrayOfAllValues返回一個CFArray,它是NSArray的「免費橋接」(意味着它可以與NSArray交替使用)。任何時候拷貝完成 - 就像方法名所暗示的那樣,你有責任釋放返回的對象。同樣,您可以在完成之後立即釋放它,或者立即自動釋放它,以便在運行循環完成時釋放它。

+2

不要擔心引用次數。如果通過顯式分配('alloc' /'Create')或通過複製另一個對象來創建對象,則您擁有它。無論你擁有什麼,你都必須釋放。內存管理編程指南最近被重寫了這些行:http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/MemoryMgmt在這種情況下,CF版本也是相關的:http://開發人員。 apple.com/mac/library/documentation/CoreFoundation/Conceptual/CFMemoryMgmt/ – 2010-09-03 16:56:38

1

記住你的內存管理的NARC。

新建,分配,保留,複製。這些是創建您負責釋放的對象的方法。除了這四種方法之外,你得到的任何新對象都是自動釋放的,你不必顯式處理它的釋放。

相關問題