@property是object-c的乙個特性,可以讓我們輕鬆實現成員變了的setting和getting方法。具體的語法如下:以成員變數nsstring *m_name為例;
標頭檔案中宣告如下:@property nsstring *m_name;
m檔案實現:@synthesize m_name;
這樣我們便生成了兩個方法,乙個get方法:m_name,乙個為set方法:setm_name;但對於物件型別,以及許可權操作等,@property還是提供了很多引數來進行控制。
我們可以在@property後面新增引數,使用如下形式:
@property (.....) nsstring *m_name;
其中支援的引數包括
1,getter=gettername,setter=settername,設定setter與getter的方法名,除非你想自己取名,否則一般使用預設的名字即可。以免造成混亂。
2,readwrite,readonly,設定可供訪問級別的限制。
2,assign,呼叫setter方法時直接賦值,不進行任何retain操作。
3,retain,
呼叫setter方法時,先release舊值,然後對賦予的新值執行retain,相當於一次指標的拷貝。
4,copy,setter方法進行copy操作,與retain處理流程一樣,先release
舊值,再copy出新的物件,retaincount為1。其實是建立乙個新的物件。
5,nonatomic,非原子性訪問,不加同步,多執行緒併發訪問會提高效能。atomic是objc使用的一種執行緒保護技術,基本上來講,是防止在寫未完成的時候被另外乙個執行緒讀取,造成資料錯誤。而這種機制是耗費系統資源的,所以在iphone這種小型裝置上,如果沒有使用多執行緒間的通訊程式設計,那麼nonatomic是乙個非常好的選擇。
讓我們來看retain的實際語法為:
-(void
)setname:
(nsstring
*)newname
}
因此對於一般的基本資料型別,我們使用assign即可,對於物件我們大多數情況下使用retain。對於像nsstring*型別的物件可以使用copy。
Objective C 學習筆記
1 is a 是乙個 繼承,提高執行效率,減少重複 2 has a 有乙個 復合,物件引用其它物件時,利用其它物件特性。3 返回屬性值的訪問方法,名稱中不能使用get這個詞 4 類名首字母大寫,變數首字母小寫。5 在objective c中所有物件間互動都是通過指標實現的。6 指標值被賦值,只有乙個...
Objective c學習筆記
一 ojective c 建立物件涉及到一下註解 inte ce implementation 前乙個註解定義的是要實現的行為 後乙個註解是實現inte ce定義的行為 1.1在objective c中總共有4個基本資料型別,分別是int float double char 1.2限定詞 限定值有 ...
Objective C學習筆記 二
4,向自定義類中新增類方法 類方法以 和返回型別開頭,後跟一組引數描述符,資料型別,引數名 在介面檔案中,宣告 void writedescriptionwiththisdate nsdate date 在標頭檔案中實現 void writedescriptionwiththisdate nsdat...