屬性與點語法

2021-06-23 04:28:43 字數 2184 閱讀 7108

1.   setter 方法的作用:為單一例項變數賦值

setter 方法的規範寫法: - 號 方法,無返回值, 名字以set開頭 + 要設定的變數的例項變數名(首字母大寫) : (setter方法有且只有乙個引數) +引數的型別(和例項變數的型別相同) + 引數名(和例項變數名相同)

getter 方法的作用:獲取單一例項變數的值

getter方法的命名規範: - 號方法, 有返回值(返回值型別和例項變數的型別相同) 方法名直接和例項變數名相同,無引數.

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

詳解:@property 用來定義屬性,nsstring * 屬性的型別(和例項變數型別相同) name屬性名(和例項變數名相同)

切記:@property 只是自動宣告setter以及getter方法的宣告

3. @synthesize name = _name ,gender =_gender ,age = _age ,height = _height ,weight = _weight;

詳解: @synthesize 屬性的實現部分,實現屬性自動生成的setter以及getter方法

name 屬性名, 指定要實現哪乙個屬性生成的setter以及getter方法

_name ,setter以及getter方法內部所要操作的例項變數

4.(1).如果定義的例項變數沒有定義,系統會自動生成指定的例項變數,但是生成的例項變數是私有的,子類不能直接訪問

(2).如果例項變數想讓子類訪問,那在.h檔案中必須定義例項變數

如果未指定setter以及getter內部所要訪問的例項變數時,系統會自 動生成乙個和屬性名一樣的例項變數

(3).如果在.m檔案中,沒有通過@synthsize對屬性進行合成,系統會自動合成,只不過此時內部所操作的例項變數是 _屬性名

5.屬性的特性(attribute)

第一大特性:讀寫特性

(1).readonly:告訴編譯器,屬性在自動生成方法時,只會生成getter方法,不會生成setter方法

(2).readwrite:告訴編譯器,屬性在自動生成方法時,既要生成setter方法,也要生成getter方法.系統預設的讀寫特性

(3).setter = aa: 告訴編譯器,當自動生成setter方法時,setter方法的方法名為指定的名字aa,不採用預設的

(4).getter = aa: 告訴編譯器,當自動生成getter方法時,getter方法的方法名為指定的名字aa,不採用預設的

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

@property (readwrite,setter = aa:,retain) nsstring *gender;

第二大特性:原子性特性

(1).atomic:原子特性,保證執行緒的安全,內部做了安全處理(加鎖與解鎖),系統預設的原子特性

(2).nonatomic:非原子性,不保證執行緒安全

因為對於setter語句getter方法的使用,比較頻繁,在一段時間內可能要多次訪問,所以使用atomic會非常消耗系統的資源,降低程式的執行效率,使用nonatomic,雖然不保證執行緒安全,但是使用一般情況下都是安全的,所以對於原子特性,使用nonatomic

第三大特性:語義特性

(1).assign: 直接賦值 ,使用針對於基本資料型別,也可以針對於物件型別.系統預設的語義特性

(2).copy : 針對於物件型別,並且要服從nscopying協議的物件才可以.會複製出乙個新的物件,擁有新的物件的所有權(引用計數+1).(先暫時這麼理解)

(3).retain : 針對於物件型別,會造成物件的引用計數+1.

例如:@property (nonatomic,retain) nsstring *gender;

@property (nonatomic)nsinteger age;

6.點語法: 是一種快速訪問setter以及getter方法的方式,宣告屬性預設生成的對應的setter以及getter方法,所以屬性和setter和getter方法都有關聯

物件.屬性名 -----如果 在等號的左邊,意味著呼叫setter方法,除此情況,都是呼叫getter方法

屬性,Property,點語法

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

屬性以及點語法

1.oc提供屬性的目的是為了簡化程式設計師編碼 為屬性提供了一些關鍵字用以控制 2.setter getter的實現細節 3.這些關鍵字我們稱為屬性的屬性 attribute 一共有三大類attribute 第一類 讀寫性控制 readonly readwrite readonly,告訴編譯器,只宣...

OC 屬性點語法

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