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

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

ARC總結

2019-11-09 18:43:49
字體:
來源:轉載
供稿:網友

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

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



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泸溪县| 菏泽市| 冷水江市| 丰都县| 修水县| 眉山市| 沾益县| 衡南县| 吴旗县| 余庆县| 永善县| 双柏县| 孝昌县| 洛浦县| 当雄县| 三门县| 丹寨县| 桦川县| 合阳县| 微博| 新乡市| 灵丘县| 汕头市| 红河县| 朝阳市| 鸡东县| 新兴县| 夏河县| 枣庄市| 凭祥市| 旺苍县| 田东县| 临湘市| 枝江市| 星子县| 若羌县| 柳河县| 普宁市| 波密县| 镇巴县| 鹿邑县|