oc中屬性以及屬性的特性

2021-06-23 04:27:41 字數 1723 閱讀 2902

1.掌握setter getter的作用以及書寫格式

1.settergetter

在oc裡,為例項變數賦值的方法稱作setter(設定器)

讀取例項變數值的方法稱作getter(訪問器)

無論是setter還是getter 內部操作的都是例項變數。

每個例項變數都需要一對setter和getter方法。

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

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

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

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

2.屬性

屬性是oc2.0定義的語法,提供了setter getter 方法的預設實現。

能在一定程度上簡化程式**,並且增強例項變數的訪問安全性。

屬性的定義:

屬性的宣告:使用@property宣告屬性例如:(@property nsstring *name;)

相當於@inte***ce 中宣告了兩個方法:

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

-(nsstring *)name;

屬性的實現:使用@synthesize實現屬性(例如:@synthesize name = _name)

相當於@implementation實現了

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

-(nsstring *)name;

3.屬性的屬性

第一類:讀寫性控制(readonlyreadwrite setter  getter)

如果讀寫性控制的關鍵字是readonly,是告訴編譯器,只宣告getter方法(無setter方法)

getter和setter的作用是對系統的方法做重新命名,符合oc中的見明知意。

如果是readwrite,告訴編譯器即宣告setter又宣告getter

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

第二類:原子性控制(nonatomic atomic)

如果原子性控制的關鍵字是atomic setter   getter方法在多執行緒訪問下是絕對安全的。即setter getter內部做了多執行緒訪問處理。原子性控制的預設設定是atomic

如果原子性控制的關鍵字是nonatomicsetter  getter 方法內部不會做多執行緒訪問處理,僅僅是普通的setter getter方法。

第三類:語義設定(assin retain copy)

如果屬性是非物件型別(比如:int  float 等)屬性的語義設定使用assgin

如果屬性是物件型別(比如:nsstring nsarray 等)屬性的語義設定用retain

如果屬性是物件型別並且想得到引數的copy使用 copy』關鍵字。

4.點語法

點語法是oc2.中定義的語法格式,提供了一種便捷的屬性訪問方式。

凡是符合系統預設settergetter 書寫格式的方法都可以使用點語法。

屬性是一對getter和setter方法,點語法是屬性的另一種呼叫格式。

屬性是oc的重要語法,屬性是一組getter。setter 方法。內部對例項變數進行操作。

OC 屬性的三大特性

屬性的三大特性 1.讀寫特性.寫 setter方法 讀 getter方法 1 readwrite 可讀可寫 該屬性既會生成getter方法,也會生成setter方法.預設的讀寫特性.2 readonly 唯讀 該屬性只會生成getter方法,不會生成setter方法.3 setter 方法名 aa ...

屬性以及它的特性

1.屬性的賦值與取值 書上面的解釋就是使用點運算子來訪問屬性,可以操作屬性來進行賦值與取值。按照字面意思來理解,你可能覺得只是使用點運算子來簡單的操作定義屬性時生成的例項變數,實則不然。按照書上講的,點運算子操作屬性的同時,也具有呼叫方法的功能。按照這樣理解,點運算子的右側跟什麼方法名,就呼叫的是哪...

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

synthesize 屬性的實現部分,實現屬性自動生成的setter以及getter方法.name 屬性名,指定要實現哪乙個屬性生成的setter以及getter方法 name,指定setter和getter方法內部所要操作的例項變數.如果指定的例項變數沒有定義,系統會自動生成指定的例項變數,但是生...