objective-c - Objective - C 静态库和它的公共(public)头文件 - 什么是正确的方法?

标签 objective-c ios xcode static-libraries header-files

我正在构建一个将在多个 iOS 应用程序中使用的静态库。 与此同时,我正在使用我的库开发其中一个应用程序。

在开发过程中,我每天至少会收到一次关于找不到库中的头文件的烦人错误(在我的应用程序项目中)。 我了解到,在构建静态库时, header 可以是 PublicPrivateProject

我猜想在我的库中公开的每个 header 都应该是 Public

我的问题是,管理这些公共(public) header 的最佳方法是什么?我应该为我的所有公共(public) header 创建一个带有 #import 的主要公共(public)头文件吗? Xcode 可以为我生成这样的文件吗?

另一个主要问题是 Public Header Folder Path 设置的推荐值是多少?

我的主要目标是将来使用这个库的项目能够以尽可能少的配置来做到这一点(添加链接器标志,更改 User Header Search Path 等)

非常感谢。

最佳答案

关于公共(public)/私有(private)/项目 header ,这是以前的答案,以防万一 => https://stackoverflow.com/a/8016333/1075192

大多数时候,C/C++/Obj-C 库和框架都有一个主标题,包括所有其他标题。例如,Cocoa 框架遵循这条路径。

例如,要使用 QuartzCore 框架声明 CAAnimation,您可以这样做:

#import "QuartzCore/CAAnimation.h"

#import "QuartzCore/Quartzcore.h"

“QuartzCore.h”实际上仅由一个 header 保护组成,并包含该库的所有其他 header 。

在我看来,实际上最好使用第一个,因为它不包含您不需要的所有声明。但大多数情况下,我们会选择一次包含所有内容的惰性解决方案。

我不知道你是否可以直接用 xCode 生成它,反正它很容易自己完成,因为它只是一堆包含或导入。

公共(public)头文件夹路径通常是“MyLibraryOrFramework/Headers”(例如,只要看看任何 Cocoa 的框架内部)。

最后,如果你想要一些真正可重用和无缝的东西,我建议你使用框架而不是静态库(这几乎是相似的)。

看看这个很好的答案,了解为什么它完全符合您的需求: => https://stackoverflow.com/a/6389802/1075192

瞧,希望这个答案对您有所帮助。

关于objective-c - Objective - C 静态库和它的公共(public)头文件 - 什么是正确的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10529604/

相关文章:

ios - sprite-kit 中的简单组合乘数

ios - iTunes 文件共享和在 swift 中为应用程序添加打开功能支持

ios - 应用程序打开时加载所有 Viewcontroller

objective-c - 在 iPad 绘画应用程序中设置颜色

ios - xCode 6 调整输入大小移动ViewController

ios - 定义完成 block 参数列表错误

ios - MSAL 添加范围 @"offline_access"、@"openid"、@"profile"问题

objective-c - ObjC/ cocoa : Get fill color property of current graphics context

添加披露指示器时 ios8 单元格约束中断

objective-c - 获取CCSprite在cocos2d中的绝对位置