3

我正在编写一个用 Objective-C 编写的框架,在尝试将框架目标链接到另一个项目后,我刚刚遇到了一个问题。当我编译最后一个项目时,Xcode 显示错误'AFHTTPClient.h' file not found

我的项目的结构是这样的:我自己编写的标头是公开的,而我正在使用的库中的标头处于项目可见性中,因此开发人员不会被不必要的文件污染。

标题可见性

JPImgurKit.h文件导入文件JPImgurClient.h(和其他文件),该文件导入AFHTTPClient.h文件并失败......当我将最后一个文件放在公共部分时它可以工作(直到导入另一个私有文件)但我想避免这种情况,是有可能吗?

4

1 回答 1

6

公共标头不得导入私有标头。公共标头中不应有任何依赖私有数据结构的内容。如果调用者必须知道私有数据结构,那么它就不是私有的。如果调用者不需要了解私有数据结构,则没有理由将其包含在公共标头中。您必须提供有关您的特定标题的更多详细信息(其中的哪些部分AFHTTPClientJPImgrClient

也就是说,您不应该私下包含像 AFNetworking 这样的公共库。可能还有其他框架需要它(包括主程序)。如果您私下包含它,则会出现冲突,最终开发人员很难解决。你需要让你的用户知道他们需要在你的包中包含 AFNetworking。你不能轻易地隐藏这个实现细节而不会给你的用户带来很多麻烦。

于 2013-07-19T19:51:16.567 回答