不使用ARC的年代
来源:互联网 发布:数据使用管理规定 编辑:程序博客网 时间:2024/04/27 10:36
如果不使用ARC,那么在堆内存中所开辟的东西,都是需要使用手工进行释放的,为什么需要手工进行释放呢?
就是因为对象在创建的过程中,自动把对象内部的计数器加1,异致垃圾回收器无法把这个对象所占的内存空间释放掉
垃圾回收器:
1Java中的垃圾回收器是全自动的,只要对象没有被其它变量所引用,垃圾回收器就会在合适的时机,把对象所占内存回收掉
2OC中的垃圾回收器是半自动的,需要手动的去设置对象内部的计数器,只要计数器值不为0,垃圾回收器就不会回收这对象所占内存空间
OC中的引用计数器,在OC所有对象中占据4个字节的空间
僵尸对象:
当对象的retainCount = 0时,此时对象将会被垃圾回收器回收,这样的对象就变成了僵尸对象
野指针:
僵尸对象指的就是不可用的内存,指向僵尸对象的指针就是野指针
EXC_BAD_ACCESS错误:
1当通过野指针向僵尸对象发送消息时,系统将报出“访问坏内存”错误,这个错误也叫做“野指针错误”
2为了防止“野指针错误”,可以把对象变量的值置为nil(也就是0),向地址为0的内存发送消息时,系统不会报错,内存地址为0的指针也叫做“空指针”
空指针错误:
1在Java中,存在空指针错误,调用空指针对象的中的方法,抛出“空指针错误”
2在OC中,没有空指针错误,向地址为0的内存发送消息时,系统不会报错
例如:调用[nil release];也不报错
僵尸对象开关:
当调用僵尸对象的setter方法时,系统不会报错,此时可以打开僵尸对象检测开关:
Edit Scheme>Diagnostics>Enable Zombie Objects
0 0
- 不使用ARC的年代
- 不使用ARC
- 80年代的人为什么不结婚
- 80年代的人为什么不结婚
- 混合使用或不使用ARC
- 代码里写了ARC,而不使用ARC编译
- IOS ARC的使用
- 关于ARC的使用
- IOS ARC的使用
- IOS ARC的使用
- iOS ARC的使用
- ARC的基本使用
- ARC的循环使用
- iOS ARC的使用
- arc的使用
- @property 的使用 (ARC)
- 【ios】(ARC) 使用ARC的注意事项总结
- 如何让特定文件不使用ARC
- 几种常用网页文本编辑器总结
- “debug.h”
- 百炼:(4074)积水量
- 交换机虚拟接口----vlan-interface
- Unity3D获取web数据的两种方法
- 不使用ARC的年代
- 闹钟的实现
- [转载] 我叫李小帅
- 人生(1)
- 技术发展背后的那个人~~
- DOS下的常用命令汇总
- ArcGIS线性参考及动态分段在交通中的应用【二】
- java SSLContext
- 适配iOS7开发