真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Objective-C(4)成員變量的包裝---屬性-創(chuàng)新互聯(lián)

  • 成員變量的getter/setter方法

    創(chuàng)新互聯(lián)擁有網(wǎng)站維護技術(shù)和項目管理團隊,建立的售前、實施和售后服務(wù)體系,為客戶提供定制化的成都網(wǎng)站設(shè)計、網(wǎng)站制作、外貿(mào)營銷網(wǎng)站建設(shè)、網(wǎng)站維護、成都服務(wù)器托管解決方案。為客戶網(wǎng)站安全和日常運維提供整體管家式外包優(yōu)質(zhì)服務(wù)。我們的網(wǎng)站維護服務(wù)覆蓋集團企業(yè)、上市公司、外企網(wǎng)站、商城開發(fā)、政府網(wǎng)站等各類型客戶群體,為全球近千家企業(yè)提供全方位網(wǎng)站維護、服務(wù)器維護解決方案。

成員變量的編程規(guī)范:

    以_開頭,并使用能夠表示其含義的單詞

    遵循駝峰規(guī)則:如果是多個單詞的組合,則除第一個單詞外每個單詞首字母大寫

成員變量的權(quán)限:

    基于面向?qū)ο蟮姆庋b特征,很少將成員變量直接暴漏在外,權(quán)限一般為@protected或@private

   如果在類的外部想要訪問成員變量,則應(yīng)提供方法接口。

getter方法:

    作用:返回對象內(nèi)部的成員變量

     命名規(guī)范:方法名與成員變量名一致。

   有返回值,類型與成員變量一致,不需要接受任何參數(shù)

setter方法:

   作用:提供一個方法給外界設(shè)置成員變量值,可以在方法里面對參數(shù)進行過濾

     命名規(guī)范:以set開頭,后面跟成員變量名(首字母大寫)

     返回值一定是void,接受一個參數(shù)且與成員變量類型相同

     形參名不要和成員變量一樣

     如果一個成員變量是只讀的或者不提供直接修改的方法,則不提供setter方法即可

  • @property關(guān)鍵字

一般情況下,我們要為每個成員變量設(shè)置getter方法以及setter方法,隨著一個類中成員變量數(shù)量的增大,會產(chǎn)生大量重復(fù)性的代碼;

@property關(guān)鍵字減少了我們這種重復(fù)性代碼的編寫,即@property幫助我們在接口中快速聲明getter方法及setter方法。

    Objective-C(4)成員變量的包裝---屬性

  • @synthesize關(guān)鍵字

@property關(guān)鍵字

     在接口中快速生成getter/setter方法的聲明

@synthesize關(guān)鍵字

     在實現(xiàn)中快速生成getter/setter方法的定義

    Objective-C(4)成員變量的包裝---屬性

蘋果公司提倡工程師去實現(xiàn) 那些核心代碼,而垃圾代碼交給 編譯器去完成

  • 屬性

從Xcode4.5開始,@synthesize的功能被@property包攬,且其管理的成員變量也不需要聲明

    即:@property可以直接聲明一個成員變量并實現(xiàn)其getter/setter方法

使用@property聲明的成員變量,稱之為屬性。

屬性所管理的成員變量的訪問權(quán)限是:@private

  • 屬性的訪問方式

成員變量訪問方式:

   只能在對象的方法中方法,如self->_age

   注意:在方法中,也可以訪問同一類型的其他對象的成員變量

getter/setter方法訪問方式:

   可以在對象的方法中或者其他方法或函數(shù)中通過getter/setter訪問

    Person *pp = [Person new];
    [pp setName:@"neuedu"];
    NSLog(@“name:%@”, [pp name]);

點語法訪問:

    可以使用點語法簡化方法的調(diào)用:

    pp.name = @"neuedu";
    NSLog(@"name:%@", pp.name);

   點語法的引入在簡化了 方法調(diào)用的同時降低了 對工程師的要求

   注意與pp為指針,取 成員應(yīng)使用->,要注意 區(qū)分

  • @property的參數(shù)

@property可以帶一些參數(shù),來限定屬性的一些特性

     @property參數(shù)有五類,每一類都一個默認(rèn)值,且只能有一個值

1)是否提供setter方法

     readonly: 只生成get方法

     readwrite:生成set方法及get方法(默認(rèn))

     如:

@property (readonly) NSString *name;

2)內(nèi)存管理相關(guān)的

     retain、strong(引用計數(shù)+1)

        ARC使用strong,非ARC使用retain

     assign、weak:直接賦值(引用計數(shù)不變)

        非ARC使用assign

        ARC中OC對象使用weak,非OC對象使用assign

     copy:用于深拷貝(新的),引用計數(shù)為1

        一般用于NSStirng

3) 多線程原子操作

     nonatomic: setter方法時不要加上多線程鎖的代碼

     atomic: setter方法時加上多線程鎖的代碼(默認(rèn))

     在單線程的情況下,應(yīng)這樣定義:

@property (nonatomic,readonly) NSString *name;

4)指定setter/getter方法名

     用@property聲明的屬性,會自動生成方法,同時也可以指定一個自定義的方法

     如:

@property (getter = abc, setter= setAbc:) int age;

     其實并不推薦這樣去做,主要用在BOOL類型屬性上

     如:

     @property (getter = isRich) BOOL rich;

5)空值警告參數(shù)(Xcode7新特性)

    用于編譯器在編譯過過程中,對屬性賦值語句產(chǎn)生必要的警告,從Xcode6.3開始引入

   nullable:允許賦值為nil

   nonnull:不允許賦值為nil,如果做了編譯會產(chǎn)生警告

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


當(dāng)前文章:Objective-C(4)成員變量的包裝---屬性-創(chuàng)新互聯(lián)
文章鏈接:http://weahome.cn/article/gggcj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部