2010-05-19 35 views

回答

66

編號認爲NARC:「New Alloc Retain Copy」。如果你沒有做這些事情,你不需要發佈。

+11

+1首字母縮寫 – 2010-05-19 15:18:42

+6

說真的。太棒了。如果你假設一個Stooge的聲音,並且在分析你的內存管理問題代碼時認爲「Narc narc narc」,那麼運行良好... – bbum 2010-05-19 16:01:22

+1

這就是很多代表0的問題。 – 2010-05-22 04:03:18

2

你只需要釋放它們,如果你在他們的方法retain。約定是,調用者有責任確保作爲參數傳遞的對象至少在調用活動時一直存在。

6

請閱讀Cocoa memory management guidelines。下面的規則是有關您的問題:

如果使用名稱以「黃金」或「新」,或包含「複製」(例如一個方法來創建它你需要一個對象的所有權,分配, newObject或mutableCopy),或者如果您發送一個保留消息。您有責任放棄使用發行版或自動發行版所擁有的對象的所有權。任何其他時間你收到一個對象,你不能釋放它。

很明顯,您沒有通過創建它們(在您的方法中)獲取參數。所以你唯一需要擔心的部分是你是否保留在方法中。如果你這樣做,你必須釋放或autorelease他們。如果你沒有,你不能釋放或自動釋放它們。

0

除非您直接使用基礎對象,否則您應該將所有這些委託給ARC。

相關問題