ARC机制-自动引用计数

本文介绍了Objective-C的Automatic Reference Counting(ARC),在ARC下,对象引用计数为0时会被自动释放。强指针和弱指针的概念被阐述,其中强指针默认持有对象,而弱指针不阻止对象释放。此外,文章还讲解了如何确认程序是否启用ARC,以及ARC下对象内存管理的几个关键点。
摘要由CSDN通过智能技术生成

什么是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)当指向对象的所有

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值