MRC是什么?管理原则是什么?存在的问题?

3.MRC是什么?管理原则是什么?存在的问题?

MRC,全称MannulReference Counting,手动内存管理 (手动引用计数),需要程序员手动的创建对象申请内存,然后再手动的释放。

MRC管理内存的原则:谁创建,谁释放。

也就是说,在使用的过程中,谁retain,谁release;或者谁alloc,谁release。

在使用MRC时,当引用计数为0时,必须回收,引用计数不为0,则不回收;如果内存计数为0了,没回收,会造成内存泄露。 如果想使用已经创建好的某个对象(别人创建的),不能直接拿过去用,需要先retain(让计数+1),用完之后应该release(计数-1),否则会造成野指针。

PS:野指针(不知道指向哪里的指针),它指向了一块不属于它的内存,可能是别人的内存,也可能之前是自己的,但是被别人释放了。

避免野指针的方式就是释放之后,让指针等于nil,这个时候在重复释放,则不会提示错误。

nil:又名空,是操作系统持有的内存,任何人都夺不去的内存。

2020面试刷题与技术储备专区

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问题: NSArray和NSMutableArray在Copy和MutableCopy下的内存是怎样的?深拷贝和浅...
    爱笑的猫mi阅读 6,277评论 0 4
  • 软件运行时会分配和使用设备的内存资源,因此,在软件开发的过程中,需要进行内存管理,以保证高效、快速的分配内存,并且...
    maTianHong阅读 748评论 0 0
  • 1. 什么是内存管理 程序在运行的过程中通常通过以下行为,来增加程序的的内存占用创建一个OC对象定义一个变量调用一...
    有梦想的狼阅读 1,111评论 0 3
  • 内存管理ARC处理原理ARC是Objective-C编译器的特性,而不是运行时特性或者垃圾回收机制,ARC所做的只...
    阳明AI阅读 377评论 0 3
  • 把心全掏给你, 你能否,真心的收下! 不知从哪时起; 她的心儿 开始往你那飞 开始想把你拥入怀里 让你感受, 她深...
    远方和梦想阅读 128评论 0 0