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 |
网友评论