• <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

            重劍無(wú)鋒 大巧不工

              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              95 隨筆 :: 0 文章 :: 7 評(píng)論 :: 0 Trackbacks
            main.m
             1 //
             2 //  main.m
             3 //  set方法內(nèi)存管理
             4 //
             5 //  Created by sixleaves on 15/5/8.
             6 //  Copyright (c) 2015年 itcast. All rights reserved.
             7 //
             8 
             9 #import <Foundation/Foundation.h>
            10 #import "Person.h"
            11 #import "Car.h"
            12 int main(int argc, const char * argv[]) {
            13     
            14     // p1-1
            15     Person *p1 = [[Person alloc] init];
            16     // c1-1
            17     Car *c1 = [[Car alloc] init];
            18     c1.speed = 100;
            19     
            20     // c1-2
            21     p1.car = c1;
            22     
            23     // c2-1
            24     Car *c2 = [[Car alloc] init];
            25     c2.speed = 200;
            26     
            27     // c1-1 c2-2
            28     p1.car = c2; // 不想用時(shí)候就要release,再retain新對(duì)象。所以原車要先release,再retain新車
            29     
            30     // c2-1
            31     [c2 release];
            32     // c1-0
            33     [c1 release];
            34     //c2-0 p1-0
            35     [p1 release];
            36     return 0;
            37 }
            38 
            39 /*
            40  總結(jié):
            41  1.setter方法的代碼規(guī)范:
            42      基本數(shù)據(jù)類型:直接賦值
            43      - (void)setAge:(int)age
            44      {
            45         _age =age;
            46      }
            47  
            48      OC對(duì)象類型
            49      - (void)setCar:(Car *)car
            50      {
            51         if ( car != _car) { // 1.先判斷是不是傳進(jìn)來對(duì)象(避免讓car成為僵尸對(duì)象)
            52             
            53             [_car release]; // 2.對(duì)舊對(duì)象做一次release
            54             _car = [car retain];  // 3.對(duì)新對(duì)象做一次retain
            55         }
            56      }
            57  
            58  2.dealloc方法的代碼規(guī)范
            59     1.對(duì)當(dāng)前對(duì)象所擁有的其他對(duì)象進(jìn)行release。
            60     2.調(diào)用父類的dealloc,并且放在最后。
            61  
            62  */
            63 
            Person.m
             1 //
             2 //  Person.m
             3 //  set方法內(nèi)存管理
             4 //
             5 //  Created by sixleaves on 15/5/8.
             6 //  Copyright (c) 2015年 itcast. All rights reserved.
             7 //
             8 
             9 #import "Person.h"
            10 #import "Car.h"
            11 @implementation Person
            12 - (void)setCar:(Car*)car
            13 {
            14     if ( car != _car) { // 1.先判斷是不是新傳進(jìn)來的對(duì)象,免得如果當(dāng)前
            15                         // _car對(duì)象引用計(jì)數(shù)器為1,而car也指向當(dāng)前對(duì)象
            16                         // 時(shí)候,會(huì)引發(fā)野指針錯(cuò)誤。
            17         [_car release]; // 2.對(duì)舊的對(duì)象做一次release,因?yàn)椴幌胗昧?/span>
            18         _car = [car retain]; // 3.對(duì)新對(duì)象做一次retain
            19     }
            20 }
            21 - (Car *)car
            22 {
            23     return _car;
            24 }
            25 
            26 - (void)dealloc
            27 {
            28     [_car release];
            29     NSLog(@"Person-dealloc");
            30     [super dealloc];
            31 }
            32 @end
            33 
            Car.m
             1 //
             2 //  Car.m
             3 //  set方法內(nèi)存管理
             4 //
             5 //  Created by sixleaves on 15/5/8.
             6 //  Copyright (c) 2015年 itcast. All rights reserved.
             7 //
             8 
             9 #import "Car.h"
            10 
            11 @implementation Car
            12 - (void)setSpeed:(int)speed
            13 {
            14     _speed = speed;
            15 }
            16 - (int)speed
            17 {
            18     return _speed;
            19 }
            20 
            21 - (void)dealloc
            22 {
            23     
            24     NSLog(@"speed = %d,Car-dealloc", _speed);
            25     [super dealloc];
            26 }
            27 @end
            28 
            posted on 2015-05-08 15:07 swp 閱讀(152) 評(píng)論(0)  編輯 收藏 引用 所屬分類: objective-c
            日韩人妻无码一区二区三区久久99| 99久久国产免费福利| 久久人人爽人人爽人人AV东京热 | 久久精品国产亚洲AV影院| 色欲久久久天天天综合网精品| 国产综合免费精品久久久| 久久国语露脸国产精品电影| 狠狠色丁香久久综合婷婷| 亚洲色欲久久久久综合网| 久久亚洲国产欧洲精品一| 久久WWW免费人成一看片| 国产精品成人久久久久三级午夜电影| 99久久国产亚洲综合精品| 国产福利电影一区二区三区,免费久久久久久久精 | 国产精品18久久久久久vr| 久久久久人妻一区二区三区| 久久综合丝袜日本网| 精品国产VA久久久久久久冰 | 久久久久久无码Av成人影院| 2020久久精品亚洲热综合一本| 国产日韩欧美久久| 久久99热狠狠色精品一区| 九九精品99久久久香蕉| 精品综合久久久久久97| 亚洲国产精品综合久久一线| 国产毛片久久久久久国产毛片| 久久久中文字幕| 一本大道加勒比久久综合| 亚洲国产成人久久综合碰碰动漫3d| 久久精品黄AA片一区二区三区| 亚洲精品无码久久久久sm| 亚洲精品蜜桃久久久久久| 久久久久亚洲av综合波多野结衣 | 狠狠色婷婷久久一区二区| 久久婷婷五月综合国产尤物app| 无码人妻久久一区二区三区蜜桃| 久久久久国产精品麻豆AR影院 | 久久青青国产| 亚洲国产精品无码久久久久久曰| 日韩十八禁一区二区久久| 日本精品一区二区久久久|