我有一个Objective- C框架(框架A),该框架公开了一些公共和私有标头。公共头文件也在框架的伞头文件中声明。我有第二个Swift框架(框架B),它与Objective- C框架链接。
现在,如果要在BI中导入A的公共标头,只需要做一个即可import A。
import A
但是,如何导入私有标头呢?
我知道桥接头不是一个选择,因为框架不支持该头。我是否需要以某种方式为专用标头创建一个单独的伞形标头?
您需要修改framework A,以便它导出私有模块。
A
A / private.modulemap :
explicit module A.Private { // Here is the list of your private headers. header "Private1.h" header "Private2.h" export * }
在框架A目标的“构建设置”中,搜索“专用模块映射文件”行,并进行以下操作:
$(SRCROOT)/A/private.modulemap
不要private.modulemap在“编译源”中包含文件。这会导致不必要的警告。
private.modulemap
清理并构建框架A目标。
在框架B中,Swift文件。您可以这样导入私有模块:
import A.Private