我该如何处理捆绑中的头文件?

时间:2012-07-06 17:26:08

标签: objective-c nsbundle

我想开发一个依赖插件(这里:可加载的bundle)来运行的程序。要求多个插件使用相同的AFNetworking资源来发出网络请求。但是,我不知道在哪里放置AFNetworkingCustomPluginProtocol标题。

以下是我的程序结构现在的样子:

MyApp.xcodeproj
  - AFNetworking
    - Header.h
  - Plugins
    - Plugin1.xcodeproj
      - PrincipalClass.m
    - Plugin2.xcodeproj
      - PrincipalClass.m
  - Classes
    - CustomPluginProtocol.h
    - MainClass.m

当然,principalClass中的每个PluginN都符合CustomPluginProtocol

  • 是否必须在每个捆绑包中复制标题?
  • 我可以直接在插件中添加主程序AFNetworking标题吗?如果是这样(这就是我现在所做的),我没有任何完成。我怎么能得到它?

修改

好的,也许我的问题不清楚。

我希望我的插件能够使用主应用程序中的来源,比如说CommonClass.mCommonClass.h。插件中的插件是否需要CommonClass.h,如果没有,当我在插件范围内时如何启用完成?

1 个答案:

答案 0 :(得分:0)

您有两个选择:

1)制作一个框架,其中包含<Your Framework>/Headers/

中的标题

2)只需向开发人员提供标题

即可

我更喜欢选项1,因为它更容易理解和跟踪所有内容,但像Photoshop这样的应用程序一直使用选项2,因此它非常可行。使用选项1,开发人员可以将您为Xcode项目制作的框架添加到#include <FrameworkName/HeaderName.h>。使用选项2,您可以为它们提供一个标题文件夹,它们会将它放在方便的位置,然后将其添加到标题搜索路径#include "FolderName/HeaderName.h"