ARC和MRC

作者: 光明程辉 | 来源:发表于2016-05-03 18:01 被阅读384次
笔者开始自学iOS的时候是MRC的,不久便接触了ARC。
下面介绍一下我所理解的MRC和ARC:

ARC和MRC的区别:
MRC:(Manual Reference Counting)也就是非ARC,在Xcode4之前,Object_C的内存管理就需要开发人员手动维护。
ARC:(Automatic Reference Counting)也就是ARC,翻译成中文就是:【自动引用计数】,不需要开发人员手动维护,系统会在合适的时候调用内存管理方法。

如果你是其它平台的开发者,也许你会问,苹果为啥出了这么一个东西?到底怎么用?
  • 这个问题问得好。我们的其它开发平台例如:C#、Java等都是通过垃圾回收机制的。在WWDC2011 大会上,苹果 MacOS 上的垃圾回收机制废弃 (Deprecated),采用 ARC 替代,意味着,ARC是苹果推荐的。为啥这么说?MRC时代,我们程序员要时刻记得对象的释放“release”,开发效率低!在MRC时代,我们要想保持一个对象,只要“retain”。现在的ARC是不需要了,现在只需用一个指针指向这个对象,无非2种情况:第一:指针为空时,对象被释放咯。第二:指针不为空,对象会一直保存在堆里,如果当指针指向一个新的值时,原来的对象会被release一次,这个系统会在合适的时候自动帮我们搞掂,不需我们关心。
问题:在ARC下,对象怎么释放?
  • 只要对象指针被置空,就会释放。否则,对象就会一直保持在堆上。当将指针指向新值时,原来的对象会被release 一次。

相关文章

  • ARC 与 MRC

    1、MRC和ARC MRC:ManulReferenceCounting(手动引用计数) ARC:Automati...

  • MRC,ARC混编环境配置

    MRC --- ARC(让ARC文件在MRC的环境下进行ARC编译) -fobjc-arc ARC --- MRC...

  • Blcok相关经典面试题

    题目:事例分析Block在ARC和MRC情况下的使用。 ARC与MRC在Xcode中的切换:arc-->mrc 更...

  • ARC和MRC

    笔者开始自学iOS的时候是MRC的,不久便接触了ARC。 下面介绍一下我所理解的MRC和ARC: ARC和MRC的...

  • ARC MRC的转换

    ARC—>MRC 例:SDWebImage 回车输入 -fobjc-arc 回车 MRC—>ARC:

  • iOS ---一些命令设置

    ARC 和MRC 共存设置 当你在ARC环境下使用MRC,在tergets里面的Compile Sources 里...

  • ARC和MRC的混合开发

    给ARC项目添加MRC标记-fno-objc-arc 给MRC项目添加ARC标记-fobjc-arc

  • ARC和MRC

    ARC和MRC混编 Xcode4.1之后系统默认采用ARC模式进行内存管理,这时如果想在项目中使用MRC模式,就需...

  • MRC和ARC

    以下只是作者自己简单的理解: MRC :(Manual Reference Counting)在Xcode4之前的...

  • iOS中MRC和ARC混编

    给ARC项目添加MRC标记(-fno-objc-arc),也可以给MRC项目添加ARC标记(-fobjc-arc)...

网友评论

本文标题:ARC和MRC

本文链接:https://www.haomeiwen.com/subject/tnnkrttx.html