1、ARC特点总结
(1)不允许调用release,retain,retainCount;
(2)允许重写dealloc,但是不允许调用[super dealloc];
(3)@property的参数:
strong: 相当于原来的retain(适用于OC对象类型),成员变量是强指针
weak: 相当于原来的assign,(适用于oc对象类型),成员变量是弱指针
assign: 适用于非OC对象类型(基础类型)
copy: 一般用于NSString, 跟MRC中的copy一样
2、ARC使用注意事项
1)ARC中,只要弱指针指向的对象不在了,就直接把弱指针做清空(赋值为nil)操作。
2)__weak Person *p=[[Person alloc] init];//不合理,对象一创建出来就被释放掉,对象释放掉后,ARC把指针设置为nil。
3)ARC中在property处不再使用retain,而是使用strong;
@property(nonatomic,strong)Dog *dog;
// 意味着生成的成员变量_dog是一个强指针,相当于以前的retain。
|
|