【问题标题】:Minimal requirements for ARC using使用 ARC 的最低要求
【发布时间】:2012-02-27 02:58:08
【问题描述】:

在苹果文档中,我看到 ARC 的最低要求是 iOS 4.3,但在 WWDC 2011 视频中,他们谈到 iOS 4.0 的最低要求。
ARC 可以在什么最小的 iOS 版本上运行?
ARC 能否在 iOS 4.0 上运行?

【问题讨论】:

    标签: iphone ios ipad automatic-ref-counting


    【解决方案1】:

    不知道您在哪里看到了有关 4.3 的信息(您有链接吗?) - 但在 "Transitioning to ARC Release Notes" Apple 中说 iOS 4。

    【讨论】:

    • 我在看 wwdc 2011 视频,323 会话时看到了它。我想我有点困惑。
    【解决方案2】:

    ARC 是编译器而非设备的功能,因此从技术上讲,它与使用它的操作系统无关。两者的区别在于弱引用的实际归零。阅读this 了解更多信息。

    在具有 5.0 之前操作系统的设备上运行使用 ARC 编译的应用程序实际上将手动将引用归零,而不是实际将它们归零。自动归零是 ARC 的核心功能,这就是为什么您不再需要调用 dealloc 或释放对象的原因。

    【讨论】:

    • 是和不是。 ARC 依赖于某些版本的 MacOS/iOS 未附带或无法安装的组件。此外 - 引用的自动归零和不需要调用 release 是两个独立的功能。
    【解决方案3】:

    ARC 是编译器级别的功能。因此,如果您能够使用最新的 LLVM 3 编译器编译代码,它应该可以工作。一些非常老的代码库(主要是老的 C 语言第三方库)需要 GCC 编译器将无法工作(这样的代码库非常非常少见)

    清零弱引用是 ARC 所利用的运行时功能,在 iOS 5/Lion 之前的操作系统上不可用。但是没有弱引用的 ARC 仍然可以工作。

    【讨论】:

    • 即使是新的 C 库也不支持 ARC。
    • @Steve 是的,没错。但是 Xcode 可以选择禁用特定文件/类的 ARC。
    • 我猜@Steve 说的是静态库。
    猜你喜欢
    • 2012-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-09
    相关资源
    最近更新 更多