• <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 閱讀(145) 評論(0)  編輯 收藏 引用 所屬分類: objective-c
            97精品依人久久久大香线蕉97| 一级a性色生活片久久无少妇一级婬片免费放 | 亚洲国产成人精品女人久久久 | 亚洲欧美国产日韩综合久久| 久久亚洲中文字幕精品一区四 | 亚洲精品tv久久久久| 狠狠色丁香久久婷婷综合| 久久综合九色综合网站| 99re久久精品国产首页2020| 日本免费久久久久久久网站| 狠狠色伊人久久精品综合网| 少妇被又大又粗又爽毛片久久黑人| 97久久婷婷五月综合色d啪蜜芽| 久久亚洲国产欧洲精品一| 人人狠狠综合88综合久久| 久久亚洲AV成人无码电影| 久久涩综合| 国产精品热久久毛片| 亚洲欧洲精品成人久久奇米网| 国产精品久久自在自线观看| 久久青青草原精品国产软件| 久久久久久狠狠丁香| 人妻精品久久无码区| 一级做a爰片久久毛片毛片| 久久亚洲国产精品一区二区| 麻豆亚洲AV永久无码精品久久| 国产精品中文久久久久久久| 精品久久久久久无码中文字幕| 东京热TOKYO综合久久精品| 久久国产欧美日韩精品免费| 热99re久久国超精品首页| 99久久久国产精品免费无卡顿| 精品久久久久久久国产潘金莲| 狠狠精品干练久久久无码中文字幕| 国产日产久久高清欧美一区| 五月丁香综合激情六月久久| 久久婷婷五月综合97色直播| 久久夜色精品国产| 亚洲国产综合久久天堂| 亚洲伊人久久综合影院| 久久久久久亚洲精品影院|