• <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++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              95 隨筆 :: 0 文章 :: 7 評論 :: 0 Trackbacks
             1 #import <Foundation/Foundation.h>
             2 
             3 @interface Car : NSObject
             4 {
             5 
             6 }
             7 
             8 @property int speed;
             9 @property int wheels;
            10 
            11 @end
            12 
            13 @implementation Car
            14 
            15 // 第一步簡化:不用寫成員變量。(使用synthesize自動生成)
            16 // @synthesize會訪問_speed成員變量,如果不存在,則自動生成_speed的成員變量。
            17 @synthesize speed;  // 說明了synthesize默認訪問的speed,所以會生成speed成員變量。
            18 @synthesize wheels = _wheels; // 已經指定了setter、getter訪問的成員變量,所以如果沒有,會自動生成。
            19 
            20 @end
            21 
            22 
            23 int main() {
            24     
            25     Car *c = [Car new];
            26     c.speed = 10;
            27     
            28     return 0;
            29 }
            30 
            31 // 最簡化寫法:
            32 /*
            33  總體總結
            34  ======================================================================================
            35  @property的基本作用:
            36     自動生成getter、setter的聲明。
            37  
            38  @synthesize的基本作用:
            39     自動生成getter、setter的實現。
            40  
            41 
            42  @synthsize的2個使用細節:
            43  
            44     @synthesize age的使用細節:
            45     1.自動訪問age成員變量
            46     2.如果age不存在,則自動生成@private的成員變量age;
            47 
            48     @synthesize age = _age;
            49     1.會自動訪問_age成員變量
            50     2.如果_age成員變量不存在,會自動生成私有的_age成員變量。
            51  ===================================================================
            52  @property新特性的作用(主要做了三件事):
            53  1.生成帶下劃線的私有成員變量。
            54  2.按照屬性名生成相應的setter與getter
            55  3.自動生成setter與getter實現(或者說是自動生成簡化的第一步)。
            56  
            57  @property新特性注意事項:
            58  大原則:有的就不生成、沒有的才自動生成。
            59  
            60  1.你有定義的setter、getter則不自動生成,沒有的話,才會自動生成。
            61  
            62  2.如果setter和getter都自定義了,那么則不會再自動生成setter、getter。包括帶下劃線的成員變量,所以這句話,相當于是廢的。
            63  分析:因為自動生成setter、getter就是為了給成員變量使用,如果不自動生成,那么也就沒必要自動生成私有的成員變量。
            64  
            65  3.如果想要不是私有的成員變量,那么可以自己定義。 再使用@property,此時如果存在這個成員變量,
            66  它就不會再自動生成,其作用域也就不是固定的私有,而是自己定的。
            67  */
            posted on 2015-05-01 23:14 swp 閱讀(142) 評論(0)  編輯 收藏 引用 所屬分類: objective-c
            久久亚洲AV成人无码| 国内精品久久久久久久亚洲| 91精品国产高清久久久久久io | 国产成人精品综合久久久| 婷婷综合久久中文字幕蜜桃三电影| 成人国内精品久久久久影院VR| 好久久免费视频高清| 久久美女网站免费| 韩国无遮挡三级久久| 老司机国内精品久久久久| 欧美综合天天夜夜久久| 国产精品午夜久久| 久久人人爽人人爽人人片AV东京热| 久久久精品日本一区二区三区| 久久亚洲色一区二区三区| 久久av免费天堂小草播放| 久久男人AV资源网站| 国产精品午夜久久| 亚洲美日韩Av中文字幕无码久久久妻妇| 午夜视频久久久久一区 | 亚洲日韩中文无码久久| 麻豆av久久av盛宴av| 国产91色综合久久免费| 久久综合九色欧美综合狠狠| 人妻无码精品久久亚瑟影视| 蜜臀av性久久久久蜜臀aⅴ麻豆| 久久久综合九色合综国产| 国产综合成人久久大片91| 久久男人中文字幕资源站| 久久久国产视频| 久久91亚洲人成电影网站| 伊人热热久久原色播放www| 91久久精一区二区三区大全| 热综合一本伊人久久精品| 99久久精品午夜一区二区| 91亚洲国产成人久久精品| 亚洲国产天堂久久综合| 色综合色天天久久婷婷基地 | 久久亚洲精品中文字幕| 日本久久中文字幕| 久久亚洲AV成人无码国产|