自動引用計數發佈已分配的Objective-C對象。什麼樣的原始變量如char *
?ARC是否會爲您釋放malloc'ed內存?
10
A
回答
8
沒有具體根據llvm document on ARC
自動引用計數實現用於Objective-C對象和塊自動存儲器管理,從需要釋放程序員顯式插入保持和釋放。它不提供循環收集器;用戶必須明確地管理生命期。
和
阿可保持對象的指針(或可保持指針)是一個可保持對象指針類型(可保持型)的值。有三種可保留對象指針類型的:
- 塊指針
- Objective-C的對象的指針(ID,類,NSFoo *(通過將插入符號(^)聲明符印記到功能型形成的),等)
- 的typedef標有__attribute __((NSObject的))
其他指針類型,如int *和CFStringRef,不受ARC的語義和 限制。
3
ARC直接釋放僅ObjC對象(不char*
,void*
,int*
...)。但ARC仍然調用對象的dealloc方法。因此,如果你有一個ObjC對象,malloc啓動了一些內存並指向一個char *,並且dealloc方法調用free,那麼內存仍然會被正確處理。
對於Core Foundation對象,您仍然需要CFRelease
他們。即使免費的橋接CF類型也需要手動撥打CFRelease
。
相關問題
- 1. 將uiimage設置爲零不會釋放內存與ARC
- 2. NSCache,removeAllObjects是否釋放內存使用?我正在使用ARC
- 3. 如何使用ARC釋放內存
- 4. 使用ARC時如何釋放內存?
- 5. ARC內存釋放不起作用
- 6. NSData內存不能釋放 - ARC
- 7. MKMapView initWithFrame不釋放內存與ARC
- 8. iOS - NSMutableArray removeAllObjects不釋放內存(ARC)
- 9. 內存不被釋放MKMapView w/ARC
- 10. ARC在使用塊時不會釋放內存
- 11. ARC會釋放已在ViewdidLoad方法中分配的內存嗎?
- 12. 「malloc」ed內存是否隱式釋放?
- 13. 是否可以釋放現有內存?
- 14. python2是否不願釋放內存?
- 15. 我是否正確釋放內存?
- 16. 是否可以釋放UIWebView的內存?
- 17. ArrayList.clear()方法是否釋放內存?
- 18. 何時會釋放內存?
- 19. iOS 5 + ARC - 是否將指針分配給指針釋放內存?
- 20. 即使我明確釋放內存,內存也不會釋放
- 21. 一旦指針超出範圍,內存是否會被釋放?
- 22. 正確釋放其他功能malloced
- 23. 引用計數設置爲零時是否釋放內存?
- 24. gc.collect是否爲我已刪除的變量釋放內存?
- 25. 釋放內存
- 26. 釋放內存
- 27. UIViewController在新的ARC內存管理下未被釋放
- 28. 使用ARC時還需要釋放任何內存嗎?
- 29. UIPopoverController內存沒有得到釋放後關閉ARC
- 30. iOS [ARC]應用程序不釋放內存