2009-12-08 48 views
0

雖然對基礎類的內存管理是一致的並且有文檔記錄,但我驚奇地發現(通過友好的EXC_BAD_ACCESS)基礎函數(例如NSStringFromSelector())似乎返回指向恆定存儲的指針 - 至少在函數的文檔中沒有提及。關於基礎函數的內存管理指南

行爲是否記錄在某處?有沒有一致的指導方針?

回答

5

規則實際上與Objective-C方法的規則相同 - 如these docs for the core foundation functions所示。

因此,在你的榜樣,因爲話allocnewcreatecopy中不存在,你回來的對象是不是您所擁有的(它要麼具有靜態存儲或將被自動釋放)。

+0

我讀了它,並以某種方式已經設法再次忘記 - 謝謝。 – 2009-12-08 13:14:26

+1

你顯然沒有「保留」它;-) – philsquared 2009-12-08 13:40:13

+1

Cocoa擁有自己的內存管理文檔(http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/MemoryMgmt/)。規則略有不同; CF沒有autorelease,而Cocoa在CF使用'Create'的地方使用'new'。 – 2009-12-08 20:10:00