OC 30 day
@property可以帶參數的
@proporty(參數1,參數2,參數3...)數據類型 名稱;
@property 的四組參數
atomic,nonatomic
assign,retain
readonly,readwrite
getter setter
atomic:默認值。如果寫atomic,這個時候生成的setter方法的代碼就會被加上一把現成安全鎖。特點:安全,效率較差。
nonatomic:如果寫nonatomic 這個時候生成的setter方法的代碼就不會加縣城安全鎖。特點:不安全,效率高。
建議:要效率,最好使用nonatomic。
assign:默認值,生成setter方法的實現就是直接賦值。
retain:生成的setter方法的實現就是標準的MRC內存管理代碼。也就是先判斷新舊對象是否為同一個對象。如果不是release舊的 retain 新的。
當屬性的類型是OC對象類型的時候,那麼就使用retain。
當屬性的類型是非OC對象的時候,使用assign。
retain參數,只是生成標準的setter方法為標準的MRC內存管理代碼,不會自動地在dealloc中生成release的代碼。所以,我們還要手動的在dealloc中release。
readwriter:默認值,代表同時生成getter setter
readonly:只會生成getter 不會生成setter
默認情況下,@property 生成的getter setter 方法都是最標準的名字。
其實我們可以透過參數來指定@property 生成方法的名字。
getter = getter方法名字 用來指定@property 生成的getter方法的名字。
setter = setter方法名字,用來指定@property生成setter方法的名字,注意setter方法是帶參數的,所以要加一個冒號。
修改生成getter setter 方法名字,因為默認下生成的方法名字已經是最標準的名字了。所以一般情況下不要去改。