屬性以及點語法

2021-07-06 09:01:29 字數 1357 閱讀 5659

1.oc提供屬性的目的是為了簡化程式設計師編碼

為屬性提供了一些關鍵字用以控制

2.setter、getter的實現細節

3.這些關鍵字我們稱為屬性的屬性(attribute)

一共有三大類attribute

第一類:讀寫性控制(readonly、readwrite)

readonly,告訴編譯器,只宣告getter方法(無setter方法)

例如:@property(readonly) nsstring *name;

// 等價於 -(nsstring*)name;

readwrite,告訴編譯器,既宣告setter又宣告getter 例如: @property(readwrite) nsstring *name;

// 等價於 -(nsstring*)name;

//-(void)setname:(nsstring *)name;

readwrite是讀寫性控制的預設設定

程式開發過程中,setter、getter處處都在用,如果使用atomic,需要不斷的對setter、getter加鎖解鎖以保證執行緒訪 問安全,會很占用系統資源,降低系統效能。

通常設定為nonatomic,某些屬性需要執行緒安全的時候,才 定義為atomic。

第三類:語義設定assign、retain、copy(retain和copy暫作了解)

使用assign修飾屬性時,setter、getter內部實現是直接賦值

例如:

@property(nonatomic,assign)nsstring*name;

- (void) setname:(nsstring*)name

_name =name;

-(nsstring *)name

return _name;

點語法:

點語法是一種快速訪問實際變數的便捷方法;

凡是符合setter和getter 書寫格式的方法可以使用點語法

setter方法:

_name = name;

getter方法:

return _name;

[person1 setname:@"zhangshan" ];//這是符合setter的書寫格式

等價於person1.name =@"zhangshan";

nsstring *name = [person1 name];

等價於nsstring *name = person1.name;

屬性是一對setter和getter方法,點語法是屬性的另一種呼叫格式.即點語法也是用來訪問例項變數,使用的前提是符合setter和getter的書寫方式

也可以理解成 當要對例項變數進行操作時,可首選點語法

屬性與點語法

1.setter 方法的作用 為單一例項變數賦值 setter 方法的規範寫法 號 方法,無返回值,名字以set開頭 要設定的變數的例項變數名 首字母大寫 setter方法有且只有乙個引數 引數的型別 和例項變數的型別相同 引數名 和例項變數名相同 getter 方法的作用 獲取單一例項變數的值 g...

屬性,Property,點語法

屬性是oc2.0之後出來的新的語法,用來替代setter和getter方法,使用屬性可以快速建立setter和getter方法的宣告,setter和getter的實現,另外還新增了對例項變數操作的安全處理 property nonatomic,retain nsstring name 暫時為reta...

OC 屬性點語法

點語法和 property 知識點一 setter和getter方法 帶上下劃線 二 點語法 乙個引數的set方法可以使用點語法賦值 xiaoxin setname 小新 這不是使用成員變數,是使用set方法 xiaoxin.name 小新 可以通過.語法呼叫get方法 nsstring ret x...