版權聲明:本文爲延成原創文章,轉載請標明出處
MRC:Manul Refrence Countin
ARC:Automatic Refrence Counting
格式:@property(屬性修飾符) 數據類型 變量名稱;
- readwrite(默認):代表生成getter方法,也生成setter方法
- readonly:代表只生成getter方法
@property(readonly)int age;
- setter:修改setter方法的方法名
@property(setter=b:)int age;
- getter:修改getter方法的方法名
@property(getter=isMarried)BOOL married;
- retain:自動生成setter/getter方法內存管理的代碼
@property(retain)int age;
- assign(默認):不會生成setter/getter方法內存管理的代碼,僅僅只生成普通的setter/getter方法。在ARC中如果保存對象不要用assign,用weak。assign是專門用於保存基本數據類型的,如果保存對象用weak。
- atomic(默認):性能低
- nonatomic:性能高
- strong:強引用,在ARC中用於OC對象,相當於MRC中的retain
@property(nonatomic,strong)int age;
- weak:弱引用,在ARC中用於OC對象,相當於MRC中的assign
@property(nonatomic,weak)int age;
- copy:1.防止外界修改內部的數據。2.可以使用copy保存block,這樣的可以保住block中使用的外界對象的命,避免以後調用block的時候,外界的對象已經釋放了。3.copy block之後引發的循環引用。如果對象中的block又用到了對象自己,那麼爲了避免內存泄漏,應該將對象修飾爲__block
注意:
- 一般情況下獲取BOOL類型的屬性的值,都會將獲取的方法名稱改爲isXXX