回答
ARC只處理Objective-C對象。所以你需要手動繼續管理Core Foundation和普通的C內存。
雖然您不需要手動保留或釋放,但您仍然負責防止保留週期 - 確保將適當的屬性標記爲強和弱。所以你需要繼續考慮所有權方面的問題。
除此之外,至少有一個非常具體的怪癖 - 如果堆棧要在它們下面放鬆,則需要記住複製塊。這是爲了確保它們最終堆在棧上,而不是堆棧,因此與內存管理相關。
在某些情況下(例如將塊分配給屬性或從函數返回一個塊),塊將自動複製,但我不會依賴它。 –
我認爲它們在被其他模塊捕獲時也被複制,因此它覆蓋了99%的實際用例,但我還沒有找到任何可引用的參考,例如,將一個作爲對象傳遞給'performSelector:... afterDelay:'將是安全的。 – Tommy
不,只是任意將一個塊作爲一個對象傳遞給另一個函數是不「安全的」,讓我解釋一下爲什麼:當塊被傳遞到已經複製了對象(如屬性)的函數中時,會自動複製塊,但它們不是'保持像普通物體一樣。所以,雖然我可能有一個強烈的引用塊,除非這個塊在堆上,這意味着什麼。當分配給任意類型('id')時,塊不會被複制,因爲ARC不知道你想使用'copy'和'retain'(它只在塊已經被複制時才起作用)。塊很混亂。 –
- 1. ARC內存管理:隨機內存警告
- 2. ARC中的內存管理
- 3. ARC代表內存管理
- 4. iOS/iPhone ARC內存管理
- 5. 塊和ARC的內存管理,泄漏?
- 6. Objective C內存管理與ARC
- 7. 這會照顧內存管理ARC
- 8. 如何用ARC管理內存?
- 9. ARC內存管理與IOS 6
- 10. 的NSString和Objective-C內存管理ARC
- 11. iOS5 SDK - ARC和內存管理
- 12. iOS - ARC /內存管理問題與ModalViewControllers
- 13. 需要內存管理的幫助
- 14. 在Xcode4.2內存管理,澄清需要
- 15. 需要幫助管理內存
- 16. 需要澄清在iPhone內存管理
- 17. C++中的手動內存管理
- 18. object-c中的手動內存管理
- 19. 爲什麼手動內存管理?
- 20. 我是否需要手動刪除或管理這個unique_ptr
- 21. ARC與非ARC框架之間的內存管理
- 22. 不同的內存管理ARC /沒有ARC
- 23. 我需要在iPhone內存管理幫助
- 24. 我是否需要刪除啓用ARC的項目中的所有內存管理方法?
- 25. Objective-C正確的內存管理和用ARC清理
- 26. ARC - 如何管理那些需要unsafe_unretained的屬性?
- 27. WooCommerce:當管理員手動創建訂單時需要掛鉤
- 28. 內存管理困擾新手
- 29. iPhone:內存管理新手問題
- 30. iPhone:新手內存管理問題
在ARC中,您不必擔心釋放內存。但請注意,在使用它時不會釋放對象。 –
@Prince:對象何時被釋放? – Surfbutler
@Surfbutler在未來的任意點。這將是確定性的,但不是從你的語法中明確的,除了你會隱含提供更高的生命週期邊界。所以像Guard Malloc和殭屍這樣的東西應該可靠地捕捉到問題並且性能應該是可預測的,但是編寫假定發佈將會發生的代碼是一個壞主意 - 儘管由於各種原因它總是一個壞主意。如果您需要明確告訴某人什麼時候停止某件事情,請按照'NSTimer'模式的'invalidate'類型步驟操作。 – Tommy