跳到主要内容

内存管理知识体系概览

问题

iOS 的内存管理机制是什么?ARC 如何工作?常见的内存问题有哪些?

答案

知识体系

核心概念

概念说明
ARC编译器自动插入 retain/release,运行时管理引用计数
strong默认,持有对象,引用计数 +1
weak不增引用计数,对象释放后自动置 nil
unowned不增引用计数,对象释放后不置 nil(访问已释放对象会崩溃)
Autorelease Pool延迟释放对象,在 pool drain 时执行 release

学习路线

推荐顺序
  1. ARC 原理 → 引用计数、Side Table、nonpointer isa
  2. 循环引用 → strong reference cycle、weak/unowned 选择
  3. 闭包捕获 → capture list、[weak self] vs [unowned self]
  4. Autorelease Pool → @autoreleasepool、RunLoop 关系
  5. Instruments → Allocations、Leaks、Memory Graph Debugger
  6. 优化策略 → 大图处理、缓存策略、低端设备降级

相关链接