簡介: property組合了新的預編譯指令和新的屬性訪問器語法。
1、@property 表示宣告了物件的乙個屬性。例如: @property float smshandling; 表示某個類的物件具有了乙個float型別的名為smshandling的屬性。
property自動生成了 -setsmshandling 和 -getsmshandling兩個方法來操作屬性.
2、@synthesize 表示建立該屬性的訪問器(ps: -setsmshandling 和 -getsmshandling兩個方法是在這句存在的情況下才開始由編譯器輸出的).
3、property支援點訪問,比如:(假設擁有上面屬性的類為a)a.smshandling = 0.3 ;
4、property的擴充套件功能:(以上介紹的是property的基本用法)
我們還可以生命具有其他屬性的@property,用來表達我們希望特性具有某種行為的確切意願。
@property (copy) nsstring * name;//通過想name這個屬性新增copy的方法,使編譯器和類的使用者知道name物件將被複製。
關於屬性的括號內的擴充套件支援如下:
1,getter=gettername,setter=settername,設定setter與getter
的方法名
2,readwrite,readonly,設定可供訪問級
2,assign
,setter方法直接賦值,不進行任何retain操作,為了解決原型別與環循引用問題
3,retain
,setter方法對引數進行release舊值再retain新值,所有實現都是這個順序(cc上有相關資料)
4,copy,
setter方法進行copy操作, 與retain處理流程一樣, 先舊值release, 再copy出新的物件, retaincount為1. 這是為了減少對上下文的依賴而引入的機制.
5,nonatomic, 非原子性訪問, 不加同步, 多執行緒併發訪問會提高效能. 注意, 如果不加此屬性, 則預設是兩個訪問方法都為原子型事務訪問. 鎖被加到所屬物件
以上的使用方式:
注:
retain的實際語法為:
-
(void
)setname:
(nsstring
*)newname
}
Posing 作為Object C語法的特性之一
posing 扮演 作為object c語法的特性之一。通過poseas方法來做到扮演的目的。扮演的作用 無需要定義子類物件和初始化,就可以通過父類扮演子類來操作 等價於子類的直接操作,類似父類轉子類 例子 import fraction.h inte ce fractionb fraction v...
Vue 理解非prop特性
所謂非 prop 特性,就是指它可以直接傳入元件,而不需要定義相應的 prop。儘管為元件定義明確的 prop 是推薦的傳參方式,元件的作者卻並不總能預見到元件被使用的場景。所以,元件可以接收任意傳入的特性,這些特性都會被新增到元件的根元素上。例如,假設我們使用了第三方元件bs date input...
Object c學習筆記十二 特性
前面我們在編寫的時候用到了set方法和get方法。在object c2.0中引入了特性 property 在標頭檔案中修改,用到關鍵字 property 可以看如下 property float rainhandling property float snowhandling void setrai...