//聯(lián)系人:石虎QQ:1224614774昵稱:嗡嘛呢叭咪哄
一、概念
1.strong類似于retain失乾,weak類似于assign
2.原子性修飾符:atomic | nonatomic
atomic:表示是線程安全的杭跪。
nonatomic:表示是非線程安全的韧骗,使用此屬性性能會提高一些逢渔。
系統(tǒng)默認是atomic
3.getter和setter修飾符
@property(getter = getMethodName, setter = setMethodName) Object *obj;
這兩個屬性修飾符用于設置自定義生成的getter和setter方法名孙蒙,使用之后將不再使用系統(tǒng)默認的setter和getter方法名递雀。
4.getter方法柄延。
readonly:表明這個屬性只能讀不能寫,系統(tǒng)只為我們創(chuàng)建一個getter方法缀程,不會創(chuàng)建setter方法
5.setter相關修飾符:assign | retain | copy
setter相關的修飾符表明setter方法應該如何實現(xiàn)
6.copy:主要用在NSString類型搜吧,表示復制內容。
系統(tǒng)默認屬性是assign杨凑。retain是指針的復制滤奈,copy是內容的復制
7.讀寫性修飾符:readwrite | readonly
readwrite:表明這個屬性是可讀可寫的,系統(tǒng)為我們創(chuàng)建這個屬性的setter和getter方法撩满。
8.readonly:表明這個屬性只能讀不能寫蜒程,系統(tǒng)只為我們創(chuàng)建一個getter方法绅你,不會創(chuàng)建setter方法
9.assign:表示直接賦值,用于基本數(shù)據(jù)類型(NSInteger和CGFloat)和C數(shù)據(jù)類型(如int,float,double,char等)另外還有id類型昭躺,這個修飾符不會牽涉到內存管理忌锯。但是如果是對象類型,使用此修飾符則可能會導致內存泄漏或EXC_BAD_ACCESS錯誤
assign:用于非指針變量领炫。用于基礎數(shù)據(jù)類型(如NSInteger, CGFloat)和C數(shù)據(jù)類型(int,float,double,char等), 另外還有id類型偶垮。
記住:前面不需要加*的就用assign
10.retain:針對對象類型進行內存管理帝洪。如果對基本數(shù)據(jù)類型使用似舵,則Xcode會直接報錯。當給對象類型使用此修飾符時葱峡,setter方法會先將舊的對象屬性release掉砚哗,再對新的對象進行一次賦值并進行一次retain操作
retain:用于指針變量。一般用于字符串(NSString, NSMutableString), 數(shù)組(NSMutableArray, NSArray),字典對象砰奕,視圖對象(UIView)蛛芥,控制器對象(UIViewController)等