Ios 在静态库中向Swift公开Objc私有头
我需要在iOS的静态库中混合使用Swift和Objective-C代码。我已经创建了Ios 在静态库中向Swift公开Objc私有头,ios,objective-c,swift,unit-testing,testing,Ios,Objective C,Swift,Unit Testing,Testing,我需要在iOS的静态库中混合使用Swift和Objective-C代码。我已经创建了module.modulemap文件,并在其中包含了Private模块。我也可以导入私有模块而不显示任何错误消息,但当我尝试使用未解析标识符“PrivateClass”引用私有类时,编译器仍会抛出错误。 UsePrivateClass.swift import Foundation import StaticLib.Private class UsePrivateClass { func printPu
module.modulemap
文件,并在其中包含了Private
模块。我也可以导入私有模块而不显示任何错误消息,但当我尝试使用未解析标识符“PrivateClass”引用私有类时,编译器仍会抛出错误。
UsePrivateClass.swift
import Foundation
import StaticLib.Private
class UsePrivateClass {
func printPublicClass() {
PublicClass().print()
}
func printPrivateClass() {
PrivateClass().print()
}
}
模块模块映射
module StaticLib {
export *
explicit module Private {
header "PrivateClass.h"
}
}
我已经将DEFINE_MODULES
设置为YES
并将MODULEMAP_文件
设置为MODULEMAP
文件。可能缺少与将modulemap文件复制到正确的目标或PrivateClass.h
头文件相关的内容,但不确定缺少哪一步
创建了一个示例项目。为什么不使用桥接标题?所以工作量要少得多。@bsod桥接头用于公共头,可以从框架外部访问。此外,它还通过在私有标题下显式定义一些标题来帮助提高可读性。