Objective-C的MRC手动内存管理——引用计数详解

0x01 对象生命周期

对象的生命周期包括诞生(通过alloc或new方法实现)、生存(接收消息并执行操作)、交友(通过复合以及向方法传递参数)以及最终死去(被释放)。

生命周期结束后,它们所占用的内存将被回收并被新的对象使用。

 

0x02 基本的内存分配规则

Objective-C的对象都是在堆里面生成,然后有一个指针指向它,使用完后不会自动销毁,需要执行dealloc来销毁,否则就会出现内存泄漏:

ClassA *obj1 = [[ClassA alloc] init];   //alloc
[obj1 dealloc];                         //dealloc

 

0x03 引用计数

Cocoa采用了引用计数(Reference Counting)或称为保留计数(Retain Counting)的技术来表示对象的生命。

每个对象都有一个与之相关联的整数作为引用计数器。

当某段代码需要访问一个对象时,该代码就将该对象的引用计数器值+1,表示“我需要访问该对象”;

当某段代码结束对象访问时,该代码就将该对象的引用计数器值-1,表示“不再访问该对象”;

当对象的引用计数器值为0时,表示“不再有代码访问该对象了”&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值