一般在聲明一些成員變量時會看到以下聲明方式:html
@property (參數1,參數2) 類型 名字;多線程
這裏咱們主要分析在括號中放入的參數,主要有如下三種:app
setter/getter方法(assign/retain/copy)讀寫屬性(readwrite/readonly)atomicity(nonatomic)ide
其中各參數說明以下:性能
assign默認類型,setter方法直接賦值,而不進行retain操做retainsetter方法對參數進行release舊值,再retain新值,以下代碼:atom
-(void) setObj:(ClassX*) value { if (obj != value) { [obj release]; obj = [value retain]; } }
copysetter方法進行Copy操做,與retain同樣nonatomic禁止多線程,變量保護,提升性能readwrite產生setter\getter方法readonly只產生簡單的getter,沒有setter。url
官方參考文檔以下:spa
http://developer.apple.com/mac/library/documentation/cocoa/Conceptual/ObjectiveC/Articles/ocProperties.html線程
本文出自 http://yarin.blog.51cto.com/1130898/416353orm