@property (nonatomic,retain)中的nonatom和retain是什麼意思

@property是一個屬性訪問聲明,擴號內支持以下幾個屬性:

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,非原子性訪問,不加同步,多線程併發訪問會提高性能。注意,如果不加此屬性,則默認是兩個訪問方法都爲原子型事務訪問。鎖被加到所屬對象實例級。



@synthesize xxx;  爲這個新屬性自動生成讀寫函數;



如果你不懂怎麼使用他們,那麼就這樣 ->

使用assign: 對基礎數據類型 (NSInteger,CGFloat)和C數據類型(int, float, double, char, 等等)

使用copy: 對NSString

使用retain: 對其他NSObject和其子類


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章