黑马程序员技术交流社区

标题: 内存管理核心-- ARC(自动释放内存) [打印本页]

作者: 小石头16544    时间: 2016-1-23 23:15
标题: 内存管理核心-- ARC(自动释放内存)
ARC(自动释放内存)的概念和原理
指针可以分为:
强指针:默认情况下,所有的指针都是强指针,关键字strong
弱指针:weak关键字修饰的指针
ARC:(automatic reference(引用,参考) counting)就是自动引用计数器,即ARC
MRC(Manual(手动的) Reference Counting)手动管理内存
ARC的基本原则:
不要在代码里,再手动写retain、release、autorelease三个关键字就好,ARC开启时,编译器会自动在代码合适的地方插入这三个关键字(完全不用担心编译器会做错...)
ARC的工作原理:
ARC是Object-C编译器的特性,ARC要做的只是在编译器编译的时候,自动在合适的位置插入release或者autorelease
ARC的判断准则:
MRC的判断准则是:当引用计数器retainCount的值为0,就销毁对象,回收内存。
ARC的判断准则:只要没有强指针指向对象,对象就会被释放
ARC使用的标志:
iOS5之后,创建项目默认的都是ARC(学习MRC的时候,我们第一步,都是要先把ARC关闭)
1)不允许调用对象的release方法
2)不允许调用autorelease方法
3)重写父类的dealloc方法时,不能再调用[super dealloc]




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2