·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> app软件开发 >> IOS开发 >> 【0-1】OC内存管理

【0-1】OC内存管理

作者:佚名      IOS开发编辑:admin      更新时间:2022-07-23

一、内存管理概述

  • 垃圾回收机制(GC):由系统管理内存,程序员不需要管理。
  • OC中的垃圾回收:在OC2.0版加入垃圾回收。
  • OC与iOS:OC有垃圾回收机制,但是iOS屏蔽了这个功能。原因:iOS运行在移动设备上,硬件资源有限(内存、电量,发热控制等方面),而垃圾回收机制有一定弊端(以java的垃圾回收机制为例,它的垃圾回收并不是当程序结束之后,立刻回收内存,而是当程序需要内存,而剩余内存不够当前申请内存的程序使用时,才进行内存的回收)。即OC有垃圾回收机制,iOS平台屏蔽了OC垃圾回收的功能,而Mac os x是有GC的。
  • 因此,在iOS平台进行软件开发,需要程序员进行内存的管理。

二、iOS的内存管理  

  内存管理的范围:内存管理管理的是 堆区 的内存

  iOS通过引用计数管理内存。在iOS5.0之后,Xcode又加入了ARC(自动引用计数),简化了内存管理。

  iOS上的内存管理方式分为MRC和ARC。两者的区别在于MRC是由程序员使用引用计数,管理内存;而ARC是由系统自动管理引用计数。

  内存管理的原则:

  1. 自己创建的对象,自己持有

  2. 非自己创建的对象,自己也能持有

  3. 不再需要自己持有对象时,释放对象

  4. 非自己持有的对象无法释放