iOS开发 - 对MRC和ARC的理解

2021-02-21  本文已影响0人  快乐灬玩耍

内存管理基本概念

在OC的内存管理,其实就是引用计数的管理。内存管理就是在程序需要时程序员分配一段内存空间,而当使用完后将它释放。如果对内存资源使用不当,不存会造成内存资源的浪费,甚至会导致程序crash等。

引用计数

当对象被创建,即通过alloc/new/copy等方法时,其引用计数器的初始值为1
当给对象发送retain消息时,其引用计数器加1。
当给对象发送release消息时,其引用计数器减1。
最后当对象的引用计数器为0时,Objc会给对象发送dealloc消息来销毁对象。
一句话谁创建、谁释放、谁引用、谁管理的原则。

空指针

没有存储任何内存地址的地址就称为空指针(NULL指针)

野指针

引用计数器为0了,还进行操作,导致程序crash

自动释放池

当我们不再使用一个对象的时候,应该将其释放。但我们很难理清一个对象什么时候不再使用,也就不知何时释放,为了解决这个问题,Objc提供了autorelease方法来解决这个问题

ARC自动内存管理

只要还有一个强指针变量指向对象,对象就会保持在内存中。

强指针和弱指针

ARC下使用MRC

在项目的Build Phases的Compile Sources中选择需要使用MRC方式的.m文件,然后双击该文件,在弹出的对话框中输入-fno-objc-arc即可

上一篇下一篇

猜你喜欢

热点阅读