我該如何決定何時釋放內存?因爲如果我釋放內存,應用程序多次崩潰。什麼時候應該釋放內存?
回答
在Objective-C中嘗試關於內存管理的apple文檔。
http://developer.apple.com/mac/library/documentation/cocoa/conceptual/MemoryMgmt/MemoryMgmt.html
當你用完後,您應該釋放內存。對象的引用計數如此,只要你retain
和release
(和其他人都這樣做),你應該沒有問題。
如果您因爲釋放內存而發現自己崩潰,那麼無論您還是其他人都不遵守規則。
在這兩種情況下,找出誰不遵守規則並修復它。不要爲了避免崩潰而堅持記憶。這種方式就是瘋狂(和缺乏記憶)。
我認爲它有助於將其視爲釋放對象而不是記憶。當保留計數變爲零時,運行時會釋放實際內存,該運行時會向對象發送dealloc消息。 – Plumenator 2010-08-19 07:12:10
瘋狂+1。學習分享你的分配的生命或瘋狂。沒有太多可用的中間地帶.... – RBerteig 2010-08-19 07:14:42
- 1. 什麼時候需要釋放內存?
- 2. 什麼時候應該釋放C中循環中使用的內存?
- 3. 什麼時候釋放GObject?
- 4. 什麼時候應該在objective-c中釋放這些對象?
- 5. 什麼時候應該在過渡到新的時候釋放當前的UIViewController?
- 6. JNI什麼時候決定可以釋放內存?
- 7. 什麼時候會釋放一個autorelease
- 8. 什麼時候釋放變量decodeSet1?
- 9. 什麼時候應該使用Import-Package,什麼時候應該使用Require-Bundle?
- 10. 什麼時候應該擴展NSDocument,什麼時候應該擴展NSWindowController?
- 11. 我們什麼時候應該上課,什麼時候不應該上課
- 12. 什麼時候應該使用AWS,什麼時候不使用
- 13. 什麼時候釋放了一個自動釋放的對象?
- 14. 在C中釋放內存時應該考慮的主要事情是什麼?
- 15. 什麼時候應該在 - (void)viewDidUnload而不是在-dealloc中釋放對象?
- 16. 時候和爲什麼我應該使用NamedNativeQuery或NamedQuery註釋
- 17. libuv和uv_buf_init:誰應該釋放什麼?
- 18. 什麼時候應該爲報亭應用推送新內容?
- 19. 什麼時候應該使用getElementById?
- 20. 什麼時候應該使用_aligned_malloc()?
- 21. 什麼時候應該使用GC.SuppressFinalize()?
- 22. 什麼時候應該使用`use`?
- 23. 什麼時候應該拋出異常?
- 24. 什麼時候應該調用SharedPreferencesBackupHelper()/ BackupAgent?
- 25. 什麼時候應該用力推?
- 26. 什麼時候應該調用setContentAspectRatio?
- 27. 什麼時候應該使用didFinishLaunchingWithOptions?
- 28. 什麼時候應該使用模板
- 29. 什麼時候應該停止服務
- 30. GitHub:我應該什麼時候做叉?
當我寫這篇文章時,有兩個選票以「不是真正的問題」作爲理由。這顯然是錯誤的。這是一個真正的問題,可以準確回答。如果你想引用精確的重複作爲一個原因,它也可能是關於其他Objective-C問題的重複。 – JeremyP 2010-08-19 08:18:48
[Objective-C內存管理:我什麼時候可以\ [釋放\]?](http://stackoverflow.com/questions/3012001/objective-c-memory-management-when-do-i-release) – Mottie 2011-11-23 17:19:33