《Objective-C基礎教程》第11章 屬性__objective-c

來源:互聯網
上載者:User
11.1 使用屬性值(@property) 11.1.2 簡化實現代碼

@synthesize是一種新的編譯器功能,表示“建立了該屬性的存取碼”。當遇到@synthesize rainHandling;時,編譯器講添加-setrainHandling:和-rainHandling方法的先行編譯代碼(在Xcode4.5以後的版本中,可以不使用@synthesize了) 11.1.3 點運算式的妙用

點運算式(.)可以使我們更加容易地訪問對象的屬性
點運算式(.)出現在等號的左邊,調用setter方法,例如

[tire setRainHandling:20+i];

等價於

tire.rainHandling=20+i;

如果出現在等號的右邊,調用該變數的getter方法 11.2 屬性擴充

@property中,使用
1、nonatomic 如果不在多線程中使用,可以調高存取方法的調用速度,經常在iOS中使用
2、不想保留某個變數對象,使用assign(如勾選)
3、copy複製屬性
4、weak不會使超類的保留計數器值加1,strong會 11.2.1 名稱的使用

屬性的名稱始終與支援屬性的執行個體變數名稱相同的情況時非常普遍的。 11.2.2 唯讀屬性

使某個對象具有唯讀屬性,這個屬性可能是一個即時計算的值,也可能是一個其他對象只能讀取單無法更改的值。

@property (readwrite,copy)NSString *name;//可以讀取也可以修改@property (readonly)NSString *licenseNumber;//唯讀,只聲稱getter而不產生setter
11.2.3 自己動手有時更好

1、使用@dynamic來高速編譯器不要聲稱任何代碼貨建立響應的執行個體變數
2、預設聲稱的方法名稱是blah:和setBlah:格式,如果想要換掉,可以使用getter=和setter=自訂,例如

@property(getter=isBlah) Bool blan;
11.2.4 特性不是萬能

屬性只支援blah:和setBlah:方法,但不支援需要接受額外參數的方法 11.3 小結

1、使用@property自動產生setter和getter方法的聲明
2、使用@synthesize與編譯指令可以通知編譯器產生存取方法(Xcode4.2之後可以不用)
3、@dynamic指令高速編譯器不要產生變數和代碼
4、點運算式:在等號左邊,setter;右邊,getter

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.