ARC——基本原理
之前用到retain返回对象的时候,调用alloc就会用release,现在我们用到ARC(编译器特性)
ARC的判断准则:
只要没有强指针指向对象,就会释放对象。
指针分2种:
1)强指针:默认情况下,所有的指针都是强指针,_strong
2)弱指针:_weak 弱 Person *p2 = p;
_strong 强(默认)
ARC的特点
1)不允许使用release、retain、retainCount
2)允许重写dealloc,但是不允许调用[super dealloc];
3)@property的参数
*strong:相当于原来的retain(适用于oc对象类型) 将成员变量改为强指针
*weak:相当于原来的assign(适用于oc对象类型) 将成员变量改为弱指针
*assign:适用于非oc对象类型
ARC转换
1)将文件retain改成strong、release删掉,即可。
2)refaceoc(重构)-->ARC 其中预览自动去解决一些删除一些release操作,和将retain改为assign操作。
那么在Xcode里面如何不使用ARC操作呢?
打开工程Build Phases里面的.m文件。打-fno-objc-arc去不使用ARC操作
当两端循环引用的时候,解决方案:
1)ARC
一端用strong,另一端用weak
2)非ARC
一端用retain,另一端用assign
|
|