oc 之内存管理 ——小结(3)
2016-03-20 20:51
218 查看
内存空间分为堆和栈
对象的内存空间放在堆里,(动态产生)不可能随便回收。
局部变量放在栈里,代码块运行完就回收了。
每一个oc对象都有一个引用计数器(4个字节),放在对象里。表示引用的次数。
引用计数器的操作
1.当使用alloc , new 或者 copy 创建一个对象时,新对象的引用计数器默认是1.
2. 当一个对象的引用计数器为0时,对象占用的内存就会被系统回收。
3. 给对象发送 retain消息就可以给计数器加一。(retain 方法返回对象。)
4. 给对象发送一个 release 消息,可以使引用计数器减一。
5. 可以给对象发送一个 retainCount消息获得当前的引用计数器数值。
对象的销毁
1.当一个对象的引用计数器材数值为0时,那么它将销毁,其占用的内存被系统回收。
2. 当一个对象被销毁时,系统就自动向对象发送一条 dealloc消息
3. 一般会重写 dealloc 方法,在这里释放相关资源,dealloc 就像对象的遗言。
对象的内存空间放在堆里,(动态产生)不可能随便回收。
局部变量放在栈里,代码块运行完就回收了。
每一个oc对象都有一个引用计数器(4个字节),放在对象里。表示引用的次数。
引用计数器的操作
1.当使用alloc , new 或者 copy 创建一个对象时,新对象的引用计数器默认是1.
2. 当一个对象的引用计数器为0时,对象占用的内存就会被系统回收。
3. 给对象发送 retain消息就可以给计数器加一。(retain 方法返回对象。)
4. 给对象发送一个 release 消息,可以使引用计数器减一。
5. 可以给对象发送一个 retainCount消息获得当前的引用计数器数值。
对象的销毁
1.当一个对象的引用计数器材数值为0时,那么它将销毁,其占用的内存被系统回收。
2. 当一个对象被销毁时,系统就自动向对象发送一条 dealloc消息
3. 一般会重写 dealloc 方法,在这里释放相关资源,dealloc 就像对象的遗言。
相关文章推荐
- Linux 驱动面试题总结
- MATLAB dlopen: cannot load any more object with static TLS
- 备战找工作0320
- (转)java实现基本数据结构(堆,栈,链表)——推荐后面的链表扩展部分
- 复习
- C++ 虚函数表解析
- 0320 关于构建之法前三章的读后感
- IndiaHacks 2016 - Online Edition (Div. 1 + Div. 2) 二分答案 + 网络流
- Node对象的几个属性
- 数据字典
- phpstudy配置虚拟主机
- anroid Intent调用系统组件的方法
- SVN服务器搭建和使用(二)
- 数据字典
- jQuery学习笔记(4)-设置元素的属性和样式
- 读别人的代码
- EL表达式中获取list长度
- LeetCode[5] 最长的回文子串
- SAX,DOM,PULL三种解析方式
- MySQL编译安装环境介绍: