用于构建静态框架和与其他开源库的内部链接的设计方法

时间:2013-12-07 14:55:50

标签: ios networking frameworks static-libraries afnetworking

我正在创建一个静态框架以分发给其他项目。我对构建框架的设计方法有些困惑。我以前从未构建过框架。

我正在构建类似于AdColony framework的东西,我会将一些唯一的id传递给框架,它将在内部调用几个API,它将使用适当的委托将最终输出传回给应用程序。在该AdColony框架中,只有一个.h文件是公开的。

我想知道一些问题:

1)我打算使用AFNetworking进行所有服务器通信和解析。因此,在构建框架时,我可以将我的静态框架与AFNetworking链接起来。 AFNetworking标题将在最终的.framework输出中显示?如果我的框架需要外部AFNetworking链接,那么我是否正在强迫其他开发人员加入AFNetworking?或者我必须写下我自己的基本网络层?

2)我可以隐藏我的所有包装器和Model类,只是让开发人员可以看到1个类用于配置和处理输出吗?

除了上述问题,如果你有一些最好的设计方法来构建这个框架,那么请建议。

1 个答案:

答案 0 :(得分:2)

1。你可以做两件事:

  • 将AFNetworking添加到您的框架中。并将AFNetworking的标题设置为公共标题。您可以更改一些包含以创建一个干净的包含标题。

  • 将您的框架与AFNetworking相关联,并强制其他开发人员链接AFNetworking。

如何知道要采用哪种方法?

如果我的框架将提供一些网络层,我将使用第一种方法。我会维护我的项目。如果您仅将AFNetworking用于内部实施,则第二种方法很有用。但是当AFNetworking改变你正在使用的东西时,你需要维护你的框架。


2。是的,你可以。

您可以设置公共标头。因此,如果您只想拥有一个公共类,则需要将该标头设置为public。请记住.h中的所有方法都是公开的。因此,如果您想确保没有人可以调用您的方法,您需要将方法声明放在您将在.m中使用的类别中

另一个建议:看看这个project