ARC(Automatic Reference Counting)是iOS系统上进行内存管理的机制。
定义
ARC实现了OC Objects以及Blocks的自动内存管理,但是其并不提供循环引用的检测,需要手动打破循环,或者使用weak以及unsafe引用。
开启和关闭ARC的编译选项:
1 | -fobjc-arc |
支持的对象指针
ARC支持的对象指针包含三类:
- Block指针;
- OC对象指针(id, Class, NSFoo*等);
- __attribute__((NSObject))标识的指针。
其他指针均不支持,例如int*和CFStringRef。