我正在制作一个静态 iOS 框架。我想AFNetworking
在我的框架中使用第 3 方代码,让我们以示例为例。AFNetworking
很受欢迎。我现在可以感觉到命名空间冲突。这里的最佳做法是什么?据我了解,我有 3 个选项:
1)构建AFNetworking
到我的框架中,导出标题。这允许客户使用AFNetworking
我的库中的版本,但他们不能使用也链接的其他框架AFNetworking
。如果他们建立在 AFNetworking 的基础上,他们会依靠我来更新 AFNetworking。
2)针对AFNetworking
标头编写代码,但让第三方包含AFNetworking
在他们的项目中。这为框架消费者增加了一个额外的步骤,他们必须添加AFNetworking
源代码。将来可能会出现版本不兼容,但至少如果另一个框架使用AFNetworking
它们,他们可以同时使用它。
3)重新命名空间AFNetworking
并保持标题私有。通过这种方式,我可以避免任何方式的命名空间冲突,但更新我的AFNetworking
. 最终的二进制文件变得有点大,但所有的互操作性问题都得到了解决。这对我来说还有很多工作要做。
我还有其他选择吗?最佳实践是什么?