大家好,本文是文档翻译计划的第 01 篇,原文是:Advanced Memory Management Programming Guide
内存管理是指在应用运行时申请内存、使用内存、以及不再使用时及时释放内存。一个好的程序应该尽量少的使用内存。在 OC 中,也是一种合理分配内存的方式。
尽管内存管理一般是考虑一个一个的单个对象,但你的目标却是管理整个对象图。你的目标是保证在内存中只保留需要用到的对象。
OC 提供两种内存管理方式。
下面是两个常见的内存管理不当引发的问题:
要从引用计数的角度去看待内存管理问题。然而常常事与愿违,大家倾向于从具体实现细节而不是从目标的角度去考虑内存管理。要从对象所有权以及对象图的角度去考虑内存管理。
Cocoa 使用一个简单的命名约定来表明何时拥有一个方法返回的对象。参考 Memory Management Policy
虽然基本原则比较简单,但是也可以通过一些使用的步骤来让内存管理变得更简单,确保你的应用更贱可靠和健壮,同时最小化内存需求。
自动释放池提供了一种延迟释放对象的机制,当你想释放一个对象,但是又不想立刻释放(比如一个方法 return 的时候),自动释放池在这种场景下是非常有用的。
为了在编译期识别内存问题,你可以使用 Xcode 的自带工具 Clang Static Analyzer。
如果确实出现内存管理问题,您可以使用其他工具和技术来识别和诊断这些问题。