• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            f(sixleaves) = sixleaves

            重劍無鋒 大巧不工

              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              95 隨筆 :: 0 文章 :: 7 評論 :: 0 Trackbacks
             1 //
             2 //  main.m
             3 //  ARC基本原理
             4 //
             5 //  Created by sixleaves on 15/5/12.
             6 //  Copyright (c) 2015年 itcast. All rights reserved.
             7 //
             8 
             9 #import <Foundation/Foundation.h>
            10 #import "Person.h"
            11 #import "Dog.h"
            12 void test1();
            13 void test2();
            14 int main(int argc, const char * argv[]) {
            15     
            16     //test1();
            17     test2();
            18     
            19     return 0;
            20 }
            21 
            22 void test1() {
            23     
            24     Person *p = [[Person alloc] init];
            25     
            26     __weak Person *p2 = p;
            27     
            28     p = nil; // 在這行運(yùn)行后,Person就被釋放
            29     /*
            30         因?yàn)樵?7行,我們清空了指針p,就沒有強(qiáng)指針指向,Person對象
            31         所以,27行一運(yùn)行結(jié)束,Person對象就會(huì)被釋放。雖然有p2指向Person
            32         對象,但是p2是弱指針。淡然如果把__weak去掉,默認(rèn)是__strong,則
            33         運(yùn)行完27行后,Person對象還不會(huì)被釋放。
            34      */
            35     
            36     NSLog(@"test1");
            37 }
            38 
            39 void test2() {
            40     
            41     Person *p = [[Person alloc] init];
            42     
            43     Dog * d = [[Dog alloc] init];
            44     
            45     p.dog = d;
            46     
            47     d = nil; // 這行運(yùn)行結(jié)束后,狗不會(huì)被釋放,因?yàn)閜對象中還有個(gè)強(qiáng)指針,指向狗對象。
            48     
            49     NSLog(@"test2");
            50     
            51     p = nil;
            52     
            53     NSLog(@"All-dealloc");
            54     /*
            55         這行執(zhí)行完后,由于沒有強(qiáng)指針指向Person對象
            56         所以,Person對象會(huì)被釋放,并且會(huì)銷毀掉Person
            57         對象中擁有的對象(Dog的指針變量)。所以就沒有強(qiáng)指針
            58         指向dog,所以Dog對象也會(huì)被銷毀。
            59      */
            60     
            61 }
            62 
            63 /*
            64  ARC釋放對象的判斷準(zhǔn)則: 只要沒有強(qiáng)指針指向?qū)ο螅蜁?huì)銷毀對象。
            65  
            66  ARC的特點(diǎn)
            67  1> 不允許調(diào)用release、retain、retainCount
            68  2> 允許重寫dealloc,但是允許調(diào)用[super dealloc]
            69  3> @property參數(shù)
            70     strong:相當(dāng)于retain(適用于OC對象)
            71     weak:相當(dāng)于assign(適用于OC對象)
            72     assign:適用于非OC對象
            73  4> 用strong替換retain
            74  
            75  指針分2種:
            76  1>強(qiáng)指針:默認(rèn)情況下,所有的指針都是強(qiáng)指針.(默認(rèn)用__strong修飾)
            77  2>弱指針:__weak
            78  
            79  Tips:如果你想持有對象,那么就用強(qiáng)指針,如果不想持有對象,就用弱只這么。
            80  
            81  常見錯(cuò)誤:
            82  __weak Perosn *p = [[Person alloc] init];
            83  //這種錯(cuò)誤是沒有理解ARC釋放對象的判斷準(zhǔn)則。沒有強(qiáng)指針指向Person對象,
            84  一創(chuàng)建就會(huì)被釋放。
            85  
            86  
            87  掌握:
            88  1.ARC釋放對象的判斷準(zhǔn)則
            89  2.ARC的四個(gè)特點(diǎn)
            90  3.強(qiáng)指針與弱指針的概念
            91  4.常見錯(cuò)誤
            92  */
            93 
            posted on 2015-05-12 16:47 swp 閱讀(222) 評論(0)  編輯 收藏 引用 所屬分類: objective-c
            久久久国产一区二区三区| 无码AV波多野结衣久久| 国产V亚洲V天堂无码久久久| 亚洲综合精品香蕉久久网97| 亚洲伊人久久成综合人影院| 免费精品99久久国产综合精品| av国内精品久久久久影院| 超级碰久久免费公开视频| 亚洲精品WWW久久久久久| 久久国产亚洲精品无码| 国产综合精品久久亚洲| 亚洲欧美日韩久久精品第一区| 青青草原综合久久| 亚洲精品乱码久久久久66| 久久精品国产亚洲精品| 99久久99久久| 国产一区二区久久久| 久久精品国产国产精品四凭| 成人久久综合网| 色偷偷偷久久伊人大杳蕉| 久久久久综合国产欧美一区二区 | 一本一本久久a久久综合精品蜜桃| 久久99热精品| 久久久久人妻一区二区三区vr| 久久亚洲国产精品123区| 久久www免费人成看国产片| av无码久久久久久不卡网站| 人人狠狠综合久久88成人| 国产精品久久新婚兰兰| 午夜视频久久久久一区| 欧洲国产伦久久久久久久| 久久久久亚洲AV无码专区桃色| 国产精品久久久久乳精品爆| 色成年激情久久综合| 日本久久久久久中文字幕| 亚洲国产精品婷婷久久| 亚洲国产精久久久久久久| 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区| 久久青青草原亚洲av无码app| 欧美精品久久久久久久自慰| 国内精品久久久人妻中文字幕|