关于ARC
来源:互联网 发布:cyberduck windows 编辑:程序博客网 时间:2024/06/05 06:07
之前面试的过程中,和面试官争论ARC的问题,近两天好好看了一下苹果的官方指导,留个足迹。
objective-c中的内存管理主要分为:MRR和ARC。MRR指的是manual retain-release,ARC指的是 auto-reference count。这两种方式说到底其实是一样的,总的来说,就是引用计数,所谓的ARC不过是编译器在合适的地方插入释放代码。引用计数这个概念我第一个接触是在C++中,也是为了解决内存泄漏的问题。
引用计数说白了就是谁拥有这个对象谁负责释放这个对象。官话叫做:ownership。方式有:1,创建,2,复制,3,retain。释放呢,可以通过autorelease, release.
对象的成员变量释放是在dealloc函数中,本地变量的释放也简单,唯一有点困惑的可能就是函数中返回的对象了。看一段代码:
- (DJTMyObject *)testParameter:(DJTMyObject *)param{ DJTMyObject *local = param; DJTMyObject *newObj = [[[DJTMyObject alloc] init] autorelease]; newObj.mName = @"new Object"; newObj.mArray = local.mArray; return newObj;}传递进来的参数,一般情况下就不用管了,所有权不在你手里,返回的对象用autorelease延迟释放,因为调用该函数的地方需要用一下,如果需要长期使用,调用方须得retain一下。
最后,Cocoa Touch层的类方法通常已经做过释放,不需要release了,init这种的一定要自己释放。
0 0
- 关于ARC
- 关于ARC
- 关于ARC
- 关于ARC
- 关于ARC
- 关于ARC的使用
- 关于ARC机制
- ios arc (二)关于 ARC
- ios 关于非arc 工程转arc
- 关于ARC的一些说法
- IOS开发笔记:关于ARC
- 关于ARC的一些说明
- xcode关于ARC的疑惑
- 关于ARC与非ARC 工程互用的问题
- 关于arc与非arc的混合编程
- 关于Xcode ARC与非ARC(MRC)设置
- 关于ARC的介绍和ARC与MRC混编解决
- ARC
- 画图解释SQL联合语句
- LVDS技术原理和设计简介
- iOS中消息的传递机制
- Spring3中js/css/jpg/gif等静态资源无法找到(No mapping found for HTTP request with URI)问题解决
- 转载]图像分割——区域生长法
- 关于ARC
- Linux网络编程(2):基于TCP的套接字编程
- 错在哪里
- 类图关系中各个符合的表示意义
- arm-linux-gcc交叉编译环境的搭建
- Cracking The Coding Interview 3rd -- 1.3
- 关于OOD的两点总结
- iOS学习笔记 获取手机信息(UIDevice、NSBundle、NSLocal)
- 工具接口标准(TIS)可执行链接格式(ELF)规范-卷III-操作系统特性-程序加载和动态链接(四)