我正在制作一个静态库产品。我想使用ARC,但我的一个客户想要将他们的应用程序定位在iOS 3.2上。他们还希望瞄准ARMv6架构。
好的。我不得不接受这个要求。据我所知,没有weak引用的ARC只是一个编译器特性,所以我认为静态库本身没有区别,或者它不需要iOS 4.0。但据我所知,苹果将iOS的最低配置限制在4.0。所以我不能自己决定,因为我没有3.2设备:(
有没有人在iOS 3.2上测试过ARC代码?如果运行良好,我将转换到ARC,并使用ARC编译我的库,然后将库传递给我的客户。我想我可以强迫他们使用4.0,但我不确定ARMv6。作为源代码,ARMv6没有理由不能工作,但我不能测试的事实让我感到担忧。请告诉我你的经历。
发布于 2012-02-11 02:22:29
自动引用计数需要现代运行时才能工作(ARC 4.0和64位雪豹中存在),因此支持iOS的项目不能以iPhone OS 3.x为目标。它们将在运行时失败。
将支持ARC的静态库部署到iOS 4.x有一个小问题,您应该知道这一点。正如我在this answer中所描述的,如果有人在非ARC应用程序中使用您的支持ARC的静态库,那么如果他们将此应用程序定位在iOS 4.x上,他们将需要手动链接到iOS库中。这在默认情况下包含在启用ARC的应用程序中,但在链接到启用ARC的库的非ARC应用程序中将缺失。
发布于 2012-02-10 16:00:07
ARC可用于SDK5.0和iOS 4.3运行时
您可能想查看http://clang.llvm.org/docs/AutomaticReferenceCounting.html以了解详细信息
在这篇文章中也有很多关于构建静态库的好信息:http://blog.stormyprods.com/2008/11/using-static-libraries-with-iphone-sdk.html
https://stackoverflow.com/questions/9224484
复制相似问题