一、ARC的基本使用 (ARC是编译器的特性)
(一)ARC的判断准则:只要没有强指针指向对象,就会释放对象。
指针:1、强指针:所有指针默认均为强指针(默认__strong)
2、弱指针:__weak
举例:@property (nonatomic strong) Dog *dog;(参数中strong相当于retain,weak相当于assign)
(二)ARC总结
1、不允许使用release、retain、retainCount
2、允许重写dealloc,但不允许调用[super dealloc]
3、@proper的参数
strong:成员变量是强指针(适用于OC对象类型)
weak:成员变量是弱指针(适用于OC对象类型)
assign:适用于非OC对象类型
4、以前的retain改为strong
(三)ARC循环引用
当两端循环引用时,解决方法:
ARC情况:一端用strong,一端用weak。
非ARC情况:一端用retain,一端用assign。