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的概念,两者判断是否销毁对象,回收内存的标准完全不一样 |
|