Objective-C基礎3:內存管理續

1.上篇咱們講了OC中的內存管理基礎,咱們再總結一下什麼時候該用內存管理。
1)當用new、alloc、copy建立對象時,必需要釋放對象。html

2)當擁有對象時,若是是臨時對象,不須要釋放;當須要長時間保留對象時,必須保留對象而且在dealloc方法中釋放對象。ios

2.OC中的垃圾回收機制app

OC2.0引入了垃圾回收機制,也就是啓用了垃圾回收機制以後,咱們忘記了釋放對象,OC會幫咱們釋放對象,這點可看出OC比C++的強大之處了。spa

垃圾回收機制主要原理是在運行中定時動態跟蹤對象,檢查對象的引用技術而且進行清理,垃圾回收只支持mac,ios不支持,緣由是在運行過程當中動態釋放,對於手機app不適用,因此apple引入ARC來解決問題。須要注意的是:我如今用的XCode6設置裏面已經沒有垃圾回收機制設置了。htm

3.IOS中ARC機制對象

 ARC(automatic reference counting)機制跟垃圾回收機制差很少,都會幫助你管理對象的生命週期。不一樣的是垃圾回收機制是在運行時決定釋放對象的,ARC是在編譯的時候編譯器給咱們的代碼偷偷地加上retain、release方法。咱們能夠選中工程,經過菜單Edit->Refactor->Convert to Objective-C ARC來對工程進行ARC轉換。ARC只對ROP對象起做用。具體講解能夠參考OC基礎教程活着apple官網文檔https://developer.apple.com/library/mac/releasenotes/ObjectiveC/RN-TransitioningToARC/Introduction/Introduction.html。教程

相關文章
相關標籤/搜索