OC中property方法的使用

咱們直入主題,關於property方法,咱們先來了解一下相關的知識,首先是成員變量,實例變量,屬性變量。函數

咱們定義一個類來看一下atom

@interface Person :NSObject{對象

 

NSInteger age;      //年齡變量字符串

NSString *name;   //名字變量get

 

}it

@property(nonatomic,assign)float height;  //身高變量io

@property(nonatomic,strong)NSString *skinColor;   //膚色變量基礎

@end變量

 

@implementation Person數據類型

 

@end

在這個類中,在大括號內定義的變量屬於成員變量,成員變量分爲實例變量和基本數據類型變量,咱們如何去區分呢?若是說這個成員變量是類變量,即實例變量,其餘的則爲成員變量。在上面的類中,name是字符串類變量,因此是實例變量,age則爲成員變量。那麼什麼是屬性變量呢?屬性變量就是用property聲明的變量,而沒必要關注是不是類變量,皆爲屬性變量。到這裏相信你們對這幾種變量已經很熟悉了。學過Java的同窗知道,Java中有get方法和set方法,並且能夠很方便的由系統自動生成。那麼在OC中能不能由系統自動生成get和set方法呢?答案是能夠的。若是咱們有不少變量須要寫get和set方法,是一個很難操做的過程。在OC中如何實現呢?就是用咱們的property方法去生成屬性變量。注意,在OC中,只有由property生成的屬性變量才帶有set和get方法!

那麼生成一個屬性變量,property就爲咱們生成了get和set方法。(nonatomic,strong/assing),括號內的各個代碼咱們暫且先不解釋,在目前階段,咱們在寫property方法時,第一個都是nonatomic,第二個能夠是strong或assign,咱們只須要知道,若是變量是OC的類變量,那麼咱們就選擇strong,若是是基礎數據類型變量咱們就選擇assign。日後學會慢慢深刻理解。使用property定義的變量,咱們在main函數中能夠直接調用,也接觸到了咱們要闡述的另外一個知識點,點語法。咱們在主函數中實例化一個對象 Person *p = [[Person alloc]init];咱們想爲身高變量賦值,p.height = 180.0;那麼此時咱們就使用了點語法,此時咱們要注意,使用點語法就至關於調用property給咱們生成的get和set方法,若是點語法在等號左邊,如前面身高賦值,就是默認調用set

方法,若是點語法在等號右邊或直接使用點語法輸出數據,則默認調用get方法,如  float temp = p.height;NSLog(@"%f",p.height);點語法只能用於由property生成的屬性變量,其餘都不可使用。假如我在類中定義一個方法,在調用的時候則不能使用點語法調用該方法,可使用中括號調用。

相關文章
相關標籤/搜索