目录 Object-C 基础教程第九章,内存管理 前言: 对象生命周期 引用计数 RetainCount1项目例子 对象所有权 访问方法中的保留和释放 自动释放 所有对象放入池中 自动释放池的销毁时间 自动
- Object-C 基础教程第九章,内存管理
- 前言:
- 对象生命周期
- 引用计数
- RetainCount1项目例子
- 对象所有权
- 访问方法中的保留和释放
- 自动释放
- 所有对象放入池中
- 自动释放池的销毁时间
- 自动释放池的工作流程
- Cocoa的内存管理规则
- 临时对象
- 拥有对象
- 垃圾回收
- 自动引用计数
- iOS无法使用垃圾回收机制
- ARC介绍
- ARC条件
- 弱引用(Weak)、强引用
- 拥有者权限
- 异常
- 与异常有关的关键字
- 捕捉不同类型的异常
- 抛出异常
- 异常也需要内存管理
- 异常和自动释放池
- 小结
- Pwn菜鸡学习小分队
最近事情比较多,很久没有来更新文章了。
刚好最近又空闲出来点时间,赶紧继续学习OC并且做笔记,这次要学习的是OC的内存管理。
对象生命周期正如现实世界中的鸟类和蜜蜂一样,程序中你的对象也有生命周期。
对象的生命周期包括诞生(通过alloc或者new方法实现)、生存(接收消息并执行操作)、交友(通过复合以及方法传递参数)
以及最终死去(被释放掉)。
当生命周期结束时,它们的原材料(内存)将被回收以供新的对象使用。
引用计数现在,对象何时诞生我们已经很清楚了,而且也讨论了如何使用对象,但是怎么知道对象生命周期结束了呢?Cocoa采用了一种叫做引用计数(reference counting)
的技术,有也叫做保留计数(retain counting)
。
每个对象都有一个关联的整数,当某段代码需求访问一个对象时候,计数器就+1,
反之当这段代码结束对象访问时,计数器-1,
当计数器为0的时候系统就回收该对象(