使用新的自动引用计数 (ARC) 内存管理风格在 iOS 项目中有什么优缺点?
在使用 iOS 5.0 SDK 进行开发时,您是否可以选择不使用 ARC?
对于一个新项目,您推荐使用 ARC 还是手动引用计数 (MRC)?
使用 ARC 的应用程序能否在早于 iOS 5.0 的旧操作系统版本上运行?
使用新的自动引用计数 (ARC) 内存管理风格在 iOS 项目中有什么优缺点?
在使用 iOS 5.0 SDK 进行开发时,您是否可以选择不使用 ARC?
对于一个新项目,您推荐使用 ARC 还是手动引用计数 (MRC)?
使用 ARC 的应用程序能否在早于 iOS 5.0 的旧操作系统版本上运行?
如果使用MRC进行开发,则可以实现向后兼容。如果使用ARC进行开发,则不一定兼容。实际上,可能需要进行一些额外的工作才能编译。运行时的要求在某些较早的版本中可用。另请参见此问题。如果需要向后兼容性,则对于某些操作系统版本,ARC将不是一个选项。使用ARC的应用程序能在iOS 5.0以下的旧版本上运行吗?
你可以使用CLANG_ENABLE_OBJC_ARC = NO
来关闭/打开它。
优点是你需要编写的代码更少,内存管理更容易。缺点是你必须放弃你所学习的关于内存管理的一切 :) 我更喜欢关闭它。
我正在使用Lion和Xcode 4.3。
我也遇到了同样的问题。
为了解决这个问题,我将"Build Settings->Objective-C Automatic Reference Co"设置成了"No"。
为了查看是否已经设置为"Yes",我还需要在"Build Settings"工具栏下方的工具栏中启用"All"和"Levels"选项。
一旦这些选项被启用,我就可以看到我的项目已经将该选项设置为"Yes"。由于默认设置为"No",因此在启用"Levels"选项之前,我花了一段时间才弄清楚。