Objective-c @propertiy和@synthesize的理解

@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;  來實現實際代碼

 
通俗理解:

@property 是類的屬性變量的聲明,也就是getter/setter函數,你可以用點(.)操作符號來存取變量。

@synthesize 是自動生成setter/getter函數,否則你得自己編寫property變量的setter/getter的實現方法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章