什么是ARC

Automatic Reference Counting,自动引用计数,简称ARC

顾名思义,系统自动的帮助我们去计算对象的引用计数器的值

在ARC机制下,我们不再需要手动调用retain、release、autorelease方法,编译器会自动的在合适的地方插入retain、release、autorelease代码

编译器会自动为对象做引用计数,而作为开发者,完全不需要担心编译器会出错

ARC机制下,对象何时会被释放

本质:对象的引用计数器值为0的时候,自动释放

表象:只要没有强指针指向这个对象,这个对象就会立即回收

强指针与弱指针

强指针:默认情况下,我们声明1个指针,这个指针就是1个强指针

​ 我们也可以使用__strong(注意是两个下划线)来显示的声明这是1个强指针

Person *p1;这是1个强指针,指针默认情况下都是强指针

__strong Person *p2;这是1个显示声明的强指针

弱指针:使用__weak标识的指针就叫做弱指针

无论是强指针还是弱指针,都是指针,都可以用来存储地址,这1点没有任何区别

都可以通过这个指针访问对象的成员

唯一的区别就是在ARC机制下,它们用来作为回收对象的基准

如果1个对象没有任何强指针指向这个对象的时候,对象就会自动释放

确认程序是否开启ARC机制

(1)默认情况下,Xcode开启ARC机制,你也可以检查一下

(2)ARC机制下,不允许调用retain、release、retainCount、autorelease方法

(3)在dealloc中,不允许[super dealloc]

演示ARC下的单个对象的内存管理

(1)当指向对象的所有的强指针被回收的时

文章来源

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: