Objective-c的MRC和ARC的内存管理机制

首先我们要知道的是,MRC在ARC之前。

MRC全称是ManualReference Counting,也有人称为Manual Retain Release(MRR)。简单来说就是传统的手工的内存管理方法,内存的分配和回收任务全部落在程序员身上。

而ARC的全称是AutomaticReference Counting,意思为自动内存管理方法。

把程序员要生于逢时来形容MRC和ARC的变化,可以说最为贴切。在IOS 5和Xcode 4.2以前,ARC还没有出现,那时候使用Oc的程序员在编写代码的时候还必须考虑内存管理的问题,并且要在代码中加入retain , release , dealloc 等语句来管理内存,而且必须小心谨慎,不然就会出现内存泄漏和无效指针,甚至导致程序的崩溃。几乎每一个alloc,retain,copy都会有release与之对应,如果有上万行代码,工作量可想而知。

在MRC中,存在以下标识符


内存管理,顾名思义就是管理自己创建的涉及内存的指针,对象。当你新建一个对象,完成了对它的使用,你就要自行把它的内存释放出来,否则就造成了内存的泄漏memory leak)。当你新建一个指针,所记录的地址的对象已经被释放,那么这就是一个无效的指针dangling pointer),这同样增加了程序的不稳定性。

所以在MRC中,存在着如此的对象管理规则,每一个对象被创建以后,都会有一个Reference Count,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值