OC内存管理 MRC与ARC
来源:互联网 发布:淘宝买了假酒怎么处理 编辑:程序博客网 时间:2024/05/03 03:19
一.MRC和ARC简介
1).MRC 手动内存管理 ,正如字面意思一样,在开发过程中,涉及内存的操作都学要手动保留和释放,对对象引用时需要对对象发送retain消息,引用计数加1 ;在不需要对象的时候,向对象发送release消息,引用计数减1。这些操作都是显式添加的。
2).Xcode4.2 之后,苹果引入自动内存管理的机制。OC的自动内存管理,不同于JAVA垃圾回收。 它是在预处理时,直接在对象应该保留的地方,添加retain;在对象应该释放的地方,添加release。是直接添加代码。
一句话:MRC是自己动手添加retain/release,ARC是编译器帮你添加。
注意:虽然ARC比较高效,毕竟是机器帮你添加的,如果代码不规范,使用ARC也是会出现内存泄露问题的。
二.MRC和ARC混编
关于为什么要混编,因为没有ARC的时候,都是使用MRC,之前的代码都是关于MRC的。在ARC环境下肯定会使用MRC的代码(比如,第三方库),这个时候就由两者共存的必要性了。下面说一下在一个工程中混编的实现过程:
第一步:选中工程
第二步:选择Targets->Build Phases->Compile Sources
第三步:找到使用MRC的文件,双击Compile Flags项,填上:-fno-object-arc
ok,混编完成
三.MRC转换成ARC
想将MRC下编写的程序转换成ARC机制下能够运行的程序,过程也是很简单的,苹果在Xcode中提供了方便转换的方法,基本一键完成。
注意:由MRC转换成ARC是单向的,也就是说,不能再由ARC转换成MRC;而且为了保证转换之后运行顺利,请确保代码规范。
转换方法:(此方法基于5.0版本,其他版本可能有出入,但基本类似)Edit->Refactor->convert to objectiv-c ARC...
以上属学习阶段的总结,有不足或者错误的地方,欢迎留言指出。
- OC内存管理 MRC与ARC
- 内存管理与ARC、MRC
- OC内存管理--MRC&ARC
- OC的内存管理方式----MRC & ARC
- OC ARC与MRC
- 内存管理arc,mrc
- 内存管理 ARC + MRC
- iOS 内存管理ARC与mrc
- iOS内存管理 ARC与MRC
- 黑马程序员---OC基础---内存管理(MRC、ARC)
- OC-049.集合中的内存管理(MRC和ARC)
- OC知识--彻底理解内存管理(MRC、ARC)
- Objective-c的内存管理MRC与ARC
- Objective-c的内存管理MRC与ARC
- Objective-c的内存管理MRC与ARC
- Objective-C的内存管理MRC与ARC
- Objective-c的内存管理MRC与ARC
- Objective-c的内存管理MRC与ARC
- 快速排序-java
- php学习
- Qt开发环境的配置(Linux&Windows)
- extjs url中文乱码处理 -- encodeURI(filePath)
- CodeForces 549D (暴力、模拟)
- OC内存管理 MRC与ARC
- MySQL Replication主从和双主配置
- Hibernate的ID生成策略
- java中的类型转换
- 搭建NFS环境并从NFS启动开发板
- 欢迎使用CSDN-markdown编辑器
- 安装ttf-mscorefonts-installer的方法
- java面向对象(继承)
- javascript深入理解js闭包