黑马程序员技术交流社区

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

作者: 小石头16544    时间: 2016-1-24 23:45
标题: OC中的内存管理核心-- ARC(自动管理内存)
ARC(自动释放内存)的概念和原理
ARC:(automatic reference(引用,参考) Counting)就是自动引用计数器,即ARC
MRC(Manual(手动的) Reference Counting)手动管理内存
ARC是Object-C编译器的特性,ARC要做的只是在编译器编译的时候
ARC的基本原则:
        不要在代码里,再手动写retain、release、autorelease三个关键字就好,重写父类的dealloc方法时,不能再调用[super dealloc],ARC开启时,编译器会自动在代码合适的地方插入这三个关键字(iOS5之后的都是ARC,完全不用担心编译器会做错...)

ARC中并不是用不着这三个关键字,而是ARC的情况下,编译器会自己判断,把这几个关键字加进去,所以其实ARC和MRC本质上其实是一样的,只是几个关键字显示不显示而已
        判断准则:
        MRC的判断准则是:当引用计数器retainCount的值为0,就销毁对象,回收内存。
        ARC的判断准则:只要没有强指针指向对象,对象就会被释放
学习ARC之后,先暂时忘记retainCount的概念,两者判断是否销毁对象,回收内存的标准完全不一样




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