2.5 内存管理

Xcode 4.2以前内存的管理是一件非常麻烦的事情,内存使用一种叫做引用计数的方式来进行管理。引用计数,顾名思义就是计算对象被引用了多少次,简单地说对象被使用了多少次,这个计数器就记录多少次,相应地就要释放多少次,在具体使用时还要考虑对象所有权、自动释放等多种问题。习惯了 C#、Java 等现代面向对象编程语言的内存自动管理机制——也称垃圾回收机制的开发者一定会觉得非常不方便。

事实上,Apple公司2006年发布的Objective-C 2.0已经支持垃圾回收了,但在iOS应用开发上使用垃圾回收是在 Xcode 4.2 以后。这种垃圾回收机制称为“自动引用计数”“Automatic Reference Counting”。

当创建iPhone项目时,有一个默认选中的选项“Use Automatic Reference Counting”,如图2-25所示。

图2-25 自动引用计数

这是一种编译器级别的简化内存管理的功能,选中该选项后,Xcode将帮助自动生成内存管理方面的代码,将开发者从手动管理代码的工作中解放出来。

Xcode 4.5与Xcode 4.3相比更进了一步,对于iOS程序的开发者来说,几乎再也不用考虑内存管理的代码。在Apple公司一年一度的WWDC大会2012年度会议上,当与会的开发人员听到这样的消息后都鼓起掌来。