屏幕快照 2015-08-21 01.57.13.png
MRC模式下:
- 使用retain的條件:
在一個類中有關聯其他對象的時,set方法的書寫
-(void)setCar:(Car *)car{
if(_Car != car){
[_Car realase];
_Car = [car retain];
}
}
替換set方法名@property(nonatomic,assign,setter = isVip: ,getter = isSup)
- 使用assign(默認)的條件:
實例變量為基本數據類型
-(void)setCar:(Car *)car{
_Car = car;
}
ARC模式下:
- ARC中的@property
strong: 用于OC對象,相當于MRC中的retain
weak: 用于OC對象,相當于MRC中的assign
assign: 用于基本數據類型,跟MRC中的assign一樣
copy: 一般用于NSString,跟MRC中的copy一樣 - 在ARC下解決“循環retain”的問題:@property一邊用strong,一邊用weak
MRC | ARC |
---|---|
assign | assign |
retain | strong/weak |
copy | copy |