Objective-C内存管理详解——ARC和垃圾回收机制
2015-10-14 11:23
423 查看
ARC的基本概念:
ARC自动引用计数,当你在编译程序时提供自动管理内存的功能,它会自动加入内存的控制代码,控制对象的生命周期。这是在iOS4以后引入的技术。此时你在代码中使用release,retain时就会报错,也就是这些方法被禁用。当然你也可以在项目中进行设置,选择重新启用MRC(手动内存管理)。在Build Setting里面把“Objective-C Automatic Reference Counting”设置为NO,就可以不启用ARC。
垃圾回收机制的基本概念:
与Java、.net语言相同,Objective-C2.0以后,也提供了垃圾回收机制。但在iOS移动终端设备中,并不支持垃圾回收机制(取决于终端设备的性能)。因此,iPhone并不能对内存进行自动垃圾回收机制(取决于终端设备的性能)。因此,iPhone并不能对内存进行自动垃圾回收处理(中间模式autorelease)。我们需要注意垃圾回收机制并不是ARC,ARC也是需要管理内存的,只不过是隐式的管理内存,编译器会在适当的地方自动插入retain,release和autorelease.
github主页:https://github.com/chenyufeng1991 。欢迎大家访问!
ARC自动引用计数,当你在编译程序时提供自动管理内存的功能,它会自动加入内存的控制代码,控制对象的生命周期。这是在iOS4以后引入的技术。此时你在代码中使用release,retain时就会报错,也就是这些方法被禁用。当然你也可以在项目中进行设置,选择重新启用MRC(手动内存管理)。在Build Setting里面把“Objective-C Automatic Reference Counting”设置为NO,就可以不启用ARC。
垃圾回收机制的基本概念:
与Java、.net语言相同,Objective-C2.0以后,也提供了垃圾回收机制。但在iOS移动终端设备中,并不支持垃圾回收机制(取决于终端设备的性能)。因此,iPhone并不能对内存进行自动垃圾回收机制(取决于终端设备的性能)。因此,iPhone并不能对内存进行自动垃圾回收处理(中间模式autorelease)。我们需要注意垃圾回收机制并不是ARC,ARC也是需要管理内存的,只不过是隐式的管理内存,编译器会在适当的地方自动插入retain,release和autorelease.
github主页:https://github.com/chenyufeng1991 。欢迎大家访问!
相关文章推荐
- Objective-C 和 Core Foundation 对象相互转换的内存管理总结
- GoLayoutObject(一)
- XCode7.0 Objective-C 三大新特性
- Objective-C内存管理详解——点语法的内存管理
- Elasticsearch : array of innner object vs. nested object
- Xcode实用工具:Code Snippets
- Eclipse UML 插件: ObjectAid UML Explorer
- ios 字典enumerateKeysAndObjectsUsingBlock遍历
- object-c中NSString与int和float的相互转换
- OC的冒泡排序
- Objective-C内存管理详解——dealloc方法
- WaitForSingleObject的用法
- 黑马程序员-----------Objective-c基础-----------继承和多态
- Objective-C中代码块的学习
- Objective-c开发中混合使用ARC
- objective-c常用数学方法
- mutable method is send to imutable object
- Objective-C内存管理详解——对象所有权
- Objective-C内存管理详解——引用计数
- Object-C 关键字之property,assign,copy,retain,release