ios - 我可以将使用 ARC 的静态库链接到面向 iOS 3.2 的项目吗?

标签 ios hyperlink automatic-ref-counting

我正在制作一个静态库产品。我想使用 ARC,但我的一位客户希望将他们的应用程序定位到 iOS 3.2。他们还希望瞄准 ARMv6 架构。

好的。我必须接受这个要求。据我所知,没有weak引用的ARC只是编译器功能,所以我认为静态库本身没有区别,或者它不需要iOS 4.0。但据我所知,Apple 将最低 iOS 限制为 4.0。所以我自己无法决定,因为我没有 3.2 设备:(

有人在 iOS 3.2 上测试过 ARC 代码吗?如果运行良好,我将过渡到 ARC,并使用 ARC 编译我的库,并将该库传递给我的客户。我想我可以强制他们使用4.0,但我不确定ARMv6。当然,ARMv6 没有理由不工作,但我无法测试这一事实让我担心。请告诉我您的经历。

最佳答案

自动引用计数需要现代运行时才能工作(iOS 4.0 和 64 位 Snow Leopard 中存在),因此启用 ARC 的项目无法针对 iPhone OS 3.x。它们将在运行时失败。

将启用 ARC 的静态库部署到 iOS 4.x 有一个您应该注意的小问题。正如我在this answer中描述的那样,如果有人在非 ARC 应用程序中使用您的启用 ARC 的静态库,并且他们将此应用程序定位为 iOS 4.x,则需要手动链接到 libarclite_iphoneos.a 库。默认情况下,它包含在启用 ARC 的应用程序中,但在链接到启用 ARC 的库的非 ARC 应用程序中将缺失。

关于ios - 我可以将使用 ARC 的静态库链接到面向 iOS 3.2 的项目吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9224484/

相关文章:

iOS 5 和 6 在 ARC 下释放 malloc-ed 内存

ios - 在后台检查服务器端应用程序通知,在 Swift 中

html - 为什么菜单悬停对于列表中的这些元素表现不同?

css - 如何将一个div保留在一个div中

javascript - 如何修复文本以使其显示在一行上?

c++ - Objective-C 弧 : is it correct to use a block as C++ callback

ios - 如何以编程方式滚动到 uitableView 标题

ios - 无法在 Swift 中转换类型错误的值

ios - 使用协议(protocol)创建类型别名

objective-c - 如何在 ARC 中使用 CFMutableDictionaryRef