ARC 和非 ARC 之间的区别
自动引用计数(ARC)是在iOS 5 sdk中引入的,目的是通过将内存管理交给编译器来使Objective-C程序员无需处理内存管理问题。
使用ARC时,不再需要使用retain和release方法,而且在很多情况下,ARC还能显著提高性能。
ARC是新LLVM 3.0编译器的一个特性,它完全摒弃了所有iOS开发人员一直以来讨厌的手动内存管理。
在自己的项目中使用ARC非常简单。除了不再调用retain、release和autorelease方法之外,编程方式与平常没有什么不同。就是这么简单。
我的建议是使用ARC。
你可以参考这个链接:http://clang.llvm.org/docs/AutomaticReferenceCounting.html
有关在iOS项目中使用ARC的利弊,你可以阅读以下内容:
ARC程序的执行几乎与良好编写的MRC程序相同。也就是说,行为上的差异通常是无法察觉的,因为操作顺序和性能非常接近。
如果你已经知道如何使用手动引用计数(MRC)来实现OS X或iOS应用程序,那么ARC实际上并没有添加功能,它只是允许你从源代码中删除引用计数操作。
如果你不想学习MRC,那么你可以先尝试使用ARC。很多人对MRC的常规操作感到困惑或者选择忽略(例如,我向一些Objective-C开发者介绍了静态分析器)。如果你想避免这些问题,ARC可以让你推迟理解;无论是MRC、ARC还是GC,你都无法编写非平凡的Objective-C程序而不理解引用计数、对象生命周期和关系。ARC和GC只是从源代码中移除了这些实现,并在大多数情况下做了正确的事情。使用ARC和GC仍然需要一些指导。
如果你正在开发的程序对于引用计数的使用比较松散(例如,有典型数量的自动释放),切换到ARC可能会显著提高程序的执行时间和峰值内存使用量。
非常感谢,我会尽快升级到ARC。