2010-08-16 63 views

回答

0

對象不一定是從內存中清除。另外,可能需要爲Core Foundation對象調用特殊函數(如CGColorRef)。 一般來說,您必須爲每個alloc調用一個版本或autorelease,保留或複製您在對象上進行的調用。

欲瞭解更多詳情,請參閱Apple的memory management guide

+0

這意味着所有對象都可以通過釋放函數釋放嗎? – Hunt 2010-08-16 09:51:01

+0

不確定你的意思,但釋放方法應該爲所有對象減少一個保留計數(我沒有意識到任何異常)。你也可以在Core Foundation對象上實際使用默認的釋放消息(這是稱爲免費橋接)。 – mrueg 2010-08-16 10:06:32

+0

我認爲你可以釋放你擁有的物體,而不是全部 – Hunt 2010-08-16 13:33:08

0

是的,你應該當你調用釋放釋放所有對象,如果您分配/保留/複製的對象....

4

不是每個對象都需要釋放。你應該修改memory management guidelines,這是一個關於內存管理的綜合指南。

它的要點是:如果你從一個法字alloc,其名稱newcopy獲得的對象,那麼你需要release它。您還需要將每個retainreleaseautorelease平衡。

release只減少一個對象保留計數,它不一定從內存中釋放它。只有當它的保留計數達到0時才被釋放。