1.什麼是ARC
在ARC之前的MRC方式中,順序員需求手動地鍵入代碼來管理對象的生命周期(次要是正確地銷毀對象)。在ARC方式中,由編譯器來輔佐拔出管理對象生命周期的代碼,增加了開發任務量並進步了順序的強健性。
ARC是編譯時特性,不是渣滓回收
2.援用計數
oc對象在內存中以構造體的方式存儲,構造體中有一個字段refrenceCount(援用計數)用來表示該對象被持有的次數,假如該對象被新的援用持有,則count +1,假如一個援用生效,則count -1,當count數為零的時分 調用dealloc辦法來銷毀對象。
3.ARC的修飾符
__strong:
修正符默許為__storng。當strong的變量援用某對象時,該對象被retain一次,當strong變量生效時(超出作用域或不在援用某對象),該對象被release一次
__weak:
被weak修飾的變量在援用對象時,對象不retain,援用生效時,對象也不release。有一點特殊的中央是,假如某個對象被銷毀時,一切指向它的weak變量都會被置為nil(__unsafe__unretain則不會),這個技術叫做zero weak pointer,它添加的順序的強健性。
__autoreleasing:
當援用被autoreasing修飾時,編譯器會拔出autoRelease辦法。所以在autoRelease pool銷毀時,該對象會調用release辦法
4.循環援用
假如順序中存在循環援用,就會招致循環援用中的對象無法被釋放,招致內存走漏。
【ARC總結】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!