如果我有一個傳遞給方法的參數,我需要在方法結尾釋放參數嗎?您是否需要在Objective-C中釋放方法的參數?
11
A
回答
66
編號認爲NARC:「New Alloc Retain Copy」。如果你沒有做這些事情,你不需要發佈。
2
你只需要釋放它們,如果你在他們的方法retain
。約定是,調用者有責任確保作爲參數傳遞的對象至少在調用活動時一直存在。
6
請閱讀Cocoa memory management guidelines。下面的規則是有關您的問題:
如果使用名稱以「黃金」或「新」,或包含「複製」(例如一個方法來創建它你需要一個對象的所有權,分配, newObject或mutableCopy),或者如果您發送一個保留消息。您有責任放棄使用發行版或自動發行版所擁有的對象的所有權。任何其他時間你收到一個對象,你不能釋放它。
很明顯,您沒有通過創建它們(在您的方法中)獲取參數。所以你唯一需要擔心的部分是你是否保留在方法中。如果你這樣做,你必須釋放或autorelease他們。如果你沒有,你不能釋放或自動釋放它們。
0
除非您直接使用基礎對象,否則您應該將所有這些委託給ARC。
相關問題
- 1. GL_TEXTUREs是否需要釋放/釋放?
- 2. 在方法內設置類屬性時,是否需要釋放?
- 3. 使用loadNibNamed:方法時是否需要釋放IBOutlets?
- 4. 是否需要釋放該對象?
- 5. 我是否需要釋放UITouch對象?
- 6. 我是否需要釋放此對象?
- 7. AJAX中的方法參數是否需要大寫?
- 8. 我是否需要釋放C#中數組使用的內存?
- 9. 是否需要釋放(或刪除)傳入C中main的參數?
- 10. 我是否需要釋放託管的BSTR作爲函數參數
- 11. 我需要在Qt中釋放slot參數的資源嗎?
- 12. AddHandler是否需要參數?
- 13. 需要解釋這種用法塊作爲方法的參數
- 14. 是否需要includeFile()方法?
- 15. 我是否需要釋放與參數jobjectArray關聯的所有內存?
- 16. 是否可以在Eclipse中顯示方法參數的註釋?
- 17. 我是否需要在php中釋放對象?
- 18. 我是否需要在dealloc中釋放IBOutlets?
- 19. 類中的方法(而不是構造函數)是否需要參數?
- 20. 是否需要類的主要方法?
- 21. 使用PInvoke中的結構後,是否需要釋放內存?
- 22. UIPageViewController設置中的viewcontrollers是否需要釋放?
- 23. 您是否釋放函數中返回的對象?
- 24. 您是否需要等待異步方法?
- 25. 爲什麼Camera需要在onPause()而不是onstop()方法的Activity中釋放?
- 26. 是否需要調用Future方法參數「by-name」?
- 27. ArrayList.clear()方法是否釋放內存?
- 28. 我需要從GetNamedSecurityInfo API中釋放哪些返回的參數?
- 29. 方法中是否需要「易失性」?
- 30. 是否在ObjectiveC中調用超類問題的方法?
+1首字母縮寫 – 2010-05-19 15:18:42
說真的。太棒了。如果你假設一個Stooge的聲音,並且在分析你的內存管理問題代碼時認爲「Narc narc narc」,那麼運行良好... – bbum 2010-05-19 16:01:22
這就是很多代表0的問題。 – 2010-05-22 04:03:18