OGeek|极客世界-中国程序员成长平台

标题: ios - 我可以将使用 ARC 的静态库链接到以 iOS 3.2 为目标的项目吗? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 11:33
标题: ios - 我可以将使用 ARC 的静态库链接到以 iOS 3.2 为目标的项目吗?

我正在制作一个静态库产品。我想使用 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 不起作用,但我无法测试的事实让我担心。请告诉我您的经历。



Best Answer-推荐答案


自动引用计数需要现代运行时才能工作(存在于 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/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4