关于“动态框架”目标,我需要将内部(私有)objective-c
标头桥接到我的swift
对应方。
根据我的理解,我需要使用私人模块。
使用@objc class TheClass
语法将这些快速对应物中的一些桥接回到objective-c。
我继续在module.modulemap
下的目录中创建了module.private.modulemap
和$SRCROOT
文件,并在构建设置中添加了“必要”标记。
SWIFT_INCLUDE_PATHS =>$(SRCROOT)/...
我还尝试在构建设置中添加“私有模块映射文件”
我的模块地图文件是:
module InnerModule {
export *
}
,私有模块文件是:
explicit module InnerModule.Private {
header "../Classes/Header1.h"
header "../Classes/Header2.h"
...
export * // and have tried without it
}
在我添加的所有相关Swift文件中
import InnerModule.Private
现在,在构建项目时,我的swift网桥标题出现错误
#import <MyFramework/MyFramework-Swift.h> // getting an error here
MyFramework-Swift.h // generated header file
@import UIKit;
@import ObjectiveC;
@import InnerModule.Private; Module InnerModule not found
如何解决这个问题?
答案 0 :(得分:1)
事实证明,在编译框架之后,您可以转到框架标题,删除所有&#34; private&#34;你不想公开的标题。
之后,您可以删除您不希望从&#34;标题&#34;中删除的所有标题文件。 。目录
按预期工作