内存管理知识体系概览
问题
iOS 的内存管理机制是什么?ARC 如何工作?常见的内存问题有哪些?
答案
知识体系
核心概念
| 概念 | 说明 |
|---|---|
| ARC | 编译器自动插入 retain/release,运行时管理引用计数 |
| strong | 默认,持有对象,引用计数 +1 |
| weak | 不增引用计数,对象释放后自动置 nil |
| unowned | 不增引用计数,对象释放后不置 nil(访问已释放对象会崩溃) |
| Autorelease Pool | 延迟释放对象,在 pool drain 时执行 release |
学习路线
推荐顺序
- ARC 原理 → 引用计数、Side Table、nonpointer isa
- 循环引用 → strong reference cycle、weak/unowned 选择
- 闭包捕获 → capture list、[weak self] vs [unowned self]
- Autorelease Pool → @autoreleasepool、RunLoop 关系
- Instruments → Allocations、Leaks、Memory Graph Debugger
- 优化策略 → 大图处理、缓存策略、低端设备降级