iOS-ARC和MRC

作者: 颜sir | 来源:发表于2018-01-03 11:11 被阅读19次

Objective-c中提供了两种内存管理机制MRC(MannulReference Counting)和ARC(Automatic Reference Counting),分别提供对内存的手动和自动管理,来满足不同的需求。Xcode 4.1及其以前版本没有ARC。

在MRC的内存管理模式下,与对变量的管理相关的方法有:retain,release和autorelease。retain和release方法操作的是引用记数,当引用记数为零时,便自动释放内存。并且可以用NSAutoreleasePool对象,对加入自动释放池(autorelease调用)的变量进行管理,当drain时回收内存。

  1. retain,该方法的作用是将内存数据的所有权附给另一指针变量,引用数加1,即retainCount+= 1;

2.release,该方法是释放指针变量对内存数据的所有权,引用数减1,即retainCount-= 1;

3.autorelease,该方法是将该对象内存的管理放到autoreleasepool中。

在ARC中与内存管理有关的标识符,可以分为变量标识符和属性标识符,对于变量默认为__strong,而对于属性默认为unsafe_unretained。也存在autoreleasepool。

其中assign/retain/copy与MRC下property的标识符意义相同,strong类似与retain,assign类似于unsafe_unretained,strong/weak/unsafe_unretained与ARC下变量标识符意义相同,只是一个用于属性的标识,一个用于变量的标识(带两个下划短线__)。所列出的其他的标识符与MRC下意义相同。

相关文章

  • iOS-ARC和MRC

    Objective-c中提供了两种内存管理机制MRC(MannulReference Counting)和ARC(...

  • ARC 与 MRC

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

  • 2020-08-20

    整理 MRC和ARC区别 MRC: (Manual Reference Counting)也就是非...

  • iOS日记5-autoreleasepool和autorelea

    1.autoreleasePool的具体使用 MRC: ARC和MRC: 2.autoreleasepool原理 ...

  • Blcok相关经典面试题

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

  • ARC和MRC

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

  • ARC和MRC

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

  • MRC和ARC

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

  • iOS 内存管理面试题(MRC(手动引用计数)和ARC(自动引用

    MRC(手动引用计数)和ARC(自动引用计数) 1、MRC:alloc,retain,release,retain...

  • iOS-ARC

    本文的内容包括 一、所有权修饰符二、ARC的基本规则三、ARC的实现 ARC中仍然是通过引用计数来管理内存,这个本...

网友评论

    本文标题:iOS-ARC和MRC

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