- 自动引用计数器 Auto Reference Count
iOS 开发目前主流的内存管理方式, 就是让编译器来进行内存管理. 在新一代 Apple llvm 编译器中设置 ARC 为有效状态, 就无需再次键入 retain 或者是 release 代码, 这在降低程序崩溃, 内存泄露等风险的同时, 很大程度上减少了开发程序的的工作量. 编译器完全清楚目标对象, 并能立刻释放那些不再需要被使用的对象. 如此一来, 应用程序将具有可预测性, 且能流畅运行, 速度也将大幅提升.
- 内存管理
房间开关灯理论, 引用计数器机制
生成对象/持有对象/释放对象/废弃对象
- 内存管理的思考方式
更加客观, 正确的思考方式是:
自己生成的对象, 自己持有.
非自己生成的对象也能自己持有
不再需要自己持有的对象时释放对象
非自己持有的对象无法释放
对象操作与 Objective-c 对应的方法
对象操作 | Objective-C 方法 |
---|---|
生成对象 | new/alloc/copy/mutableCopy |
持有对象 | retain |
释放对象 | release |
废弃对象 | dealloc |
/*
* 自己生成并持有对象
**/
id obj = [[NSObject alloc] init];
/**
* 自己持有对象
*/
[obj release]
/**
* 释放对象
*/