自动生成代码,不是垃圾回收
ARC的判断准则:
只要没有强指针指向对象,就会释放对象
1、ARC特点
-》不允许调用release、retain、retainCount
-》允许重写dealloc,但是不允许调用[super dealloc]
-》@property的参数
strong:成员变量是强指针(适用于OC对象类型)
weak :成员变量是弱指针(适用于OC对象类型)
assign:基本数据类型
-》以前的retain改用strong,其他一次不变
指针分两种:
强指针:默认情况下,所有的指针都是强指针(_ _ strong 默认可以不写)两个下划线
弱指针: (_ _weak)
__weak Person *p = [[Person alloc] init];
weak的使用场景:
循环引用。
当发生循环引用的时候(人有只狗,狗有主人),这个时候需要一个使用strong一个使用weak
当项目使用ARC之后,如果某个文件不想使用ARC,那么就在Build Phases→Comlile Sources中双击这个文件
在弹出的框中填写:-fno-objc-arc
如果项目不是ARC,其中的某个文件想使用ARC,那么就在Build Phases→Comlile Sources中双击这个文件
在弹出的框中填写:-f-objc-arc
时间: 2024-11-13 08:59:58