【发布时间】:2012-04-23 12:27:50
【问题描述】:
我已经使用启用 ARC 的 xcode 4.3.2 开发了一个应用程序,我的应用程序用户拥有 ios3.2、ios4.0、ios5.0 设备我如何为较低版本的 ios 设备使用提供支持。我需要做什么代码方面的任何东西。或者有什么方法可以动态设置ARC。
任何人对此有任何想法请与我分享。 谢谢
【问题讨论】:
标签: objective-c ios ios5 ios4 automatic-ref-counting
我已经使用启用 ARC 的 xcode 4.3.2 开发了一个应用程序,我的应用程序用户拥有 ios3.2、ios4.0、ios5.0 设备我如何为较低版本的 ios 设备使用提供支持。我需要做什么代码方面的任何东西。或者有什么方法可以动态设置ARC。
任何人对此有任何想法请与我分享。 谢谢
【问题讨论】:
标签: objective-c ios ios5 ios4 automatic-ref-counting
ARC 不依赖于设备或操作系统(请参阅下面的注释)。它是 LLVM 编译器功能(可以使用 -fno-objc-arc 编译器标志禁用)。编译器管理内存而不是程序员。最终的可执行文件彼此之间不会有太大的不同,并且可以在为您的项目指定的最低操作系统上运行(如果您不使用 ARC 特定的关键字等)。
注意: 根据 Apple 的Transitioning to ARC Release Notes from Apple,ARC 编译的可执行文件只能在 iOS 4 及更高版本上运行。此外,弱引用仅在 iOS 5 上受支持。
【讨论】:
只需将目标部署设置为您的用户可能使用的最低 iOS 版本。自动引用计数仅在 Xcode 中编译应用程序时。启用应用程序的 ARC 的内存由编译器 (Xcode) 管理。因此,您无需担心设备的目标 iOS 版本。只需将 Target Deployment 设置为 3.2 或 4 等即可。
【讨论】:
我认为至少不能保证它在 iOS 3.x 上正常工作。见Transitioning to ARC Release Notes from Apple:
Xcode 4.2 支持 Mac OS X v10.6 和 v10.7(64 位应用程序)以及 iOS 4 和 iOS 5。Mac OS X v10.6 和 iOS 4 不支持弱引用。
【讨论】: