<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經轉移至github,大家請訪問 http://qaseven.github.io/

    iOS開發系列-ARC淺解

     一、什么是 ARC ?
      所謂ARC就是Automatic Reference Counting , 即自動引用計數。ARC是自iOS5引入的。ARC機制的引入是為了簡化開發過程的內存管理的。相對于之前的MRC (Manual Reference Counting) , ARC機制顯得更加自動化。在使用ARC開發過程中,開發者只需考慮strong / weak 的使用,不再需要考慮對象何時要retain,release/autorealease。使用ARC一般不會降低程序的效率。
      二、ARC的工作原理
      ARC一個很重要的原則是:只要某個對象被任一strong指針指向,那么它將不會被銷毀。如果對象沒有被任何strong指針指向,那么就將被銷毀。
      ARC是基于引用計數的,當某個對象被一個strong指針指向時,它的計數+1。當沒有strong指針指向時,其計數為0,此時對象會被銷毀。只要一個對象有至少一個strong指針指向時,它就不會被銷毀。但ARC容易造成一個 Strong Reference Cycle 的問題,這樣即使AddBook 和 Entry 這兩個對象都不再使用了,但是由于ARC機制,這兩個對象都互相有strong指針指向,所以這兩個對象都不會被回收,從而造成內存無法被釋放。
      針對上面的情況,有一種解決方法:在其中一個對象中引入weak,替換其strong
      引入weak后,當entry使用完后,由于指向AddrBook沒有strong指針,所以AddrBook會首先被釋放,然后由于AddrBook被釋放,指向Entry的Strong指針也會銷毀,此時沒有指向Entry的strong指針,所以Entry也會被釋放。這樣就不會出現內存無法被釋放的情況。
      這里就有一個問題了,什么時候應該用strong,什么時候應該用weak呢?看以下解析:
      如圖所示,ViewController直接持有View,所以ViewController應該要有一個strong指向view。同理,view直接持有subviews,所以也應該要有strong指向subviews。由于viewcontroller要使用subviews對象,但又不想直接持有subviews,所以只好通過weak指向subviews。這樣的話,可以在viewcontroller中不改變view的持有關系,就可以使用subviews對象。從圖中可以得出一個通用的規律:對于有直接持有的關系,持有者要通過strong指向被持有者。對于有間接持有關系的,間接持有者需通過weak指向間接被持有者。

    posted on 2014-11-21 10:57 順其自然EVO 閱讀(195) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄

    <2014年11月>
    2627282930311
    2345678
    9101112131415
    16171819202122
    23242526272829
    30123456

    導航

    統計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 免费A级毛片无码久久版| 国产色婷婷精品免费视频| 成人性做爰aaa片免费看| 午夜视频在线免费观看| 麻豆精品国产免费观看| 亚洲国产精品嫩草影院久久| 亚洲一区二区三区日本久久九| 亚洲欧洲日韩国产一区二区三区| 偷自拍亚洲视频在线观看99| 一区二区在线免费观看| 亚洲bt加勒比一区二区| 黄色毛片免费网站| 久久久久免费看黄A片APP| 亚洲国产精品无码成人片久久| 亚洲精品自偷自拍无码| 久久w5ww成w人免费| 精品国产人成亚洲区| 亚洲av成人中文无码专区| 4hu四虎最新免费地址| 亚洲av午夜福利精品一区| eeuss影院免费92242部| 国产男女猛烈无遮挡免费网站| 男女啪啪免费体验区| 精品剧情v国产在免费线观看| 日韩亚洲翔田千里在线| 免费中文熟妇在线影片 | 国产精品免费看久久久 | 国产精品亚洲综合一区在线观看 | 免费在线观看黄色毛片| 美女网站在线观看视频免费的| 免费人成网站在线高清| 老司机精品免费视频| 中文国产成人精品久久亚洲精品AⅤ无码精品| 久久精品国产亚洲AV忘忧草18| 最近免费mv在线电影| 亚洲日韩国产一区二区三区在线 | 久热中文字幕在线精品免费| 老司机亚洲精品影院| 亚洲男人天堂2022| 亚洲成Av人片乱码色午夜| 亚洲AV性色在线观看|