IOS开发学习笔记014-ARC机制

ARC

  1、ARC机制

  2、ARC 判断准则

  3、注意事项

  4、ARC和非ARC混合使用

ARC机制

  ARC 是编译器特性,而不是 iOS 运行时特性,它也不是类似于其它语言中的垃圾收集器。因此 ARC 和手动内存管理性能是一样的,有时还能更加快速,因为编译器还可以执行某些优化

ARC 判断准则:

  只要没有强指针,就会释放对象。

  指针分2种:

    强指针:默认都是强指针  (__strong) 

    __strong Person *p; //  __strong 可以不写,默认就是__strong

    弱指针:使用(__weak)声明的对象

    __weak Person *p;

注意事项

  1、 ARC不允许调用retain、release、retainCount

  2、允许写dealloc,但是不允许调用 [super dealloc];

  3、@property 

    strong 强指针(OC对象)

    weak 弱指针(OC对象)

    assign (非OC对象类型)

    以前的retain改为strong,其他一切不变。

  4、循环引用时,一端使用strong,一端使用weak,对应非arc下得retain和assgin

ARC和非ARC混合使用

如果整个项目就是ARC,如果想让某些文件不支持ARC,设置如下

首先看一下arc机制是否打开

然后再设置编译参数

如果整个项目不是ARC,但是想让某些文件支持ARC机制,设置如下 -f-objc-arc

原文地址:https://www.cnblogs.com/songliquan/p/4438649.html