我应该如何处理包中的头文件?
Posted
技术标签:
【中文标题】我应该如何处理包中的头文件?【英文标题】:How should I handle header files in a bundle? 【发布时间】:2012-07-06 17:26:07 【问题描述】:我想开发一个依赖插件(这里:可加载包)工作的程序。要求多个插件使用相同的AFNetworking
资源来发出网络请求。但是,我不知道将AFNetworking
和CustomPluginProtocol
标头放在哪里。
这是我的程序结构现在的样子:
MyApp.xcodeproj
- AFNetworking
- Header.h
- Plugins
- Plugin1.xcodeproj
- PrincipalClass.m
- Plugin2.xcodeproj
- PrincipalClass.m
- Classes
- CustomPluginProtocol.h
- MainClass.m
当然,PluginN
中的每个principalClass
都符合CustomPluginProtocol
。
AFNetworking
标头吗?如果是这样(这就是我现在所做的),我没有任何完成。我怎样才能得到它?
编辑
好的,所以我的问题可能不清楚。
我希望我的插件使用来自主应用程序的资源,比如CommonClass.m
和CommonClass.h
。插件在它们的包中是否需要CommonClass.h
,如果不需要,当我在插件范围内时如何启用完成?
【问题讨论】:
头文件不会被添加到包中。除非您将文件添加为资源。 每个需要 AFNetworking 的插件项目都会链接到该库。AFNetworking
不是真正的库,因为它没有与我的主应用程序分开编译。它只是一个文件夹中的一堆文件。如何使PluginN
正确看到AFNetworking
标头?
【参考方案1】:
你有两个选择:
1) 生成一个框架,其中包含 <Your Framework>/Headers/
中的标头
2) 只需将标题提供给开发人员
我更喜欢选项 1,因为它更容易理解和跟踪所有内容,但是像 Photoshop 这样的应用程序一直使用选项 2,所以它完全可行。使用选项 1,开发人员会将您制作的框架添加到他们的 Xcode 项目中,而 #include <FrameworkName/HeaderName.h>
。使用选项 2,您将为他们提供一个标题文件夹,他们会将其放在对他们方便的地方,然后将其添加到他们的标题搜索路径和 #include "FolderName/HeaderName.h"
。
【讨论】:
以上是关于我应该如何处理包中的头文件?的主要内容,如果未能解决你的问题,请参考以下文章