您的位置:首页 > 其它

OC ARC与MRC

2015-10-23 10:04 302 查看
Objective-C提供了三种内存管理方式:

1、MannulReferenceCounting(MRC,手动管理,在开发iOS4.1之前的版本的项目时我们要自己负责使用引用计数来管理内存,比如要手动retain、release、autorelease 等,而在其后的版本可以使用ARC,让系统自己管理内存。)

2、automaticreference counting(ARC,自动引用计数,iOS4.1 之后推出的)

3、garbagecollection(垃圾回收)。iOS不支持垃圾回收; ARC作为苹果新提供的技术,苹果推荐开发者使用ARC技术来管理内存;

内存管理的原理:

对象的引用计数器:
每个OC对象都有自己的引用计数器,是一个整数,表示对象被引用的次数。当对象一创建时,默认的计数器值为1;
当对象的引用计数器的值为0时,则对象被销毁,这个对象所对应的内存将被释放

手动管理内存, 可以简称MRC (Manual ReferenceCounting)

Automatic ReferenceCounting,自动引用计数,即ARC,可以说是WWDC2011和iOS5所引入的最大的变革和最激动人心的变化。ARC是新的LLVM3.0编译器的一项特性,使用ARC,可以说一举解决了广大iOS开发者所憎恨的手动内存管理的麻烦。

在工程中使用ARC非常简单:只需要像往常那样编写代码,只不过永远不写retain,release和autorelease三个关键字就好~这是ARC的基本原则。

当ARC开启时,编译器将自动在代码合适的地方插入retain,release和autorelease,而作为
开发者,完全不需要担心编译器会做错(除非开发者自己错用ARC了)。

ARC与其他语言的”垃圾回收”机制不同。ARC:编译器特性;“垃圾回收”运行时特性

mrc,手动管理;如果mrc内存不释放就会出错,调用一次对象就要 调用[xx release]来释放对象,[xx release]要写在调用对象的后面,重写dealloc方法在控制台中可查看对象是否释放完毕。 也可以使用[xx autorelease] 来释放对象。

arc,自动引用计数管理;

开发中如何使用:开发中尽量使用arc。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: