非ARC(自动引用计数)和ARC用户的开源解决方案

4

我们有一些开源库,通过 git 模块与 Xcode 中的其他项目一起进行代码共享。其中一些项目将保留明确的 retains/release,而其他项目则希望利用自动引用计数(ARC)。是否有办法让相同的源代码可以在启用和禁用 ARC 的 Xcode 项目中编译?将其编译成静态库会起作用吗?

1个回答

4
如果您将编译您的开源库作为静态库的项目捆绑在一起,而其他项目链接静态库而不是直接编译源代码,则可以实现该目标。其他项目可以嵌入您的库项目文件(如果他们想要),以便在他们之前编译您的库,或者您可以预编译静态库并进行分发。

你可能会觉得这个很有用,它是一个逐步指南,介绍了如何转换ARC,并包括选择性启用/禁用文件中的ARC的说明。http://longweekendmobile.com/2011/09/07/objc-automatic-reference-counting-in-xcode-explained - pchap10k
2
分发使用ARC编译的静态库的一个棘手问题是,您需要在任何非ARC应用程序中包含libarclite_iphoneos.a(适用于iOS),如果该应用程序想要针对iOS 4.x进行目标设置。这个苹果开发者论坛线程有更多关于此的讨论:https://devforums.apple.com/message/533729 - Brad Larson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接