国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

ARC總結

2019-11-09 17:41:51
字體:
來源:轉載
供稿:網友

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.循環引用

如果程序中存在循環引用,就會導致循環引用中的對象無法被釋放,導致內存泄漏。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 改则县| 垦利县| 新宁县| 芜湖县| 郎溪县| 上林县| 辽阳县| 新营市| 梅河口市| 龙州县| 三河市| 米易县| 商南县| 绥阳县| 邻水| 韶关市| 定南县| 太仓市| 彩票| 万源市| 板桥市| 德阳市| 湾仔区| 靖宇县| 克什克腾旗| 喀喇沁旗| 花莲市| 南京市| 宣恩县| 弥勒县| 通江县| 武山县| 全南县| 玉屏| 外汇| 惠水县| 攀枝花市| 天台县| 尖扎县| 龙江县| 康定县|