OC中關於屬性,特性,點語法的總結

2021-06-23 04:27:42 字數 2605 閱讀 3792

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

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

_name,指定setter和getter方法內部所要操作的例項變數.

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

如果例項變數想讓子類訪問,在.h檔案中必須定義,才可以被繼承

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

如果對於setter和getter方法,我們實現了,系統就不會再自動生成.

如果在.m檔案中未通過@synthesize對屬性進行合成,系統會自動合成,只不過此時系統預設的setter和getter方法內部所操作的例項變數是_屬性名.

1.當把語義特性宣告為assign時,setter以及getter方法內部實現

//如果將@synthesize省略,並且我們自己實現setter以及getter方法時,系統就不會生成對應的setter以及getter,還有例項變數.

- (void)setname:(nsstring *)name

- (nsstring *)name

2.當把語義特性宣告為retain時,setter以及getter方法內部實現

- (void)setname:(nsstring *)name

} - (nsstring *)name

3.當把語義特性宣告為copy時,setter以及getter方法內部實現

- (void)setname:(nsstring *)name

} - (nsstring *)name

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

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

setter 方法規範的寫法: -號方法,無返回值,名字以set開頭+要設定的例項變數名

名(首字母大寫):(setter方法有且只有乙個引數) +引數的型別(和例項變數型別相同) + 引數名(和例項變數名相同).

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

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

屬性是oc2.0

之後出來的新的語法

,用來替代

setter

以及getter方法,

使用屬性可以快速是建立

setter

以及getter

方法的宣告

,setter

以及getter

方法的實現

.另外還新增了對例項變數操作的安全處理.

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

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

屬性的特性(attribute)

第一特性:讀寫特性

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

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

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

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

第二大特性:(原子性特性)

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

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

第三大特性:語義特性

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

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

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

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

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

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

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

OC 屬性點語法

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

oc中屬性以及屬性的特性

1.掌握setter getter的作用以及書寫格式 1.settergetter 在oc裡,為例項變數賦值的方法稱作setter 設定器 讀取例項變數值的方法稱作getter 訪問器 無論是setter還是getter 內部操作的都是例項變數。每個例項變數都需要一對setter和getter方法。...

隨意細解 OC 屬性 點語法 KVC

利用屬性宣告set get方法。學習階段,使用mrc,並在 m 檔案中練習get set方法的完整實現。注意 建立工程 預設是arc狀態 自動管理記憶體 在工程的設定中,將objective c automatic reference counting 的 yes 改為 no,手動管理記憶體 mrc...