Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在静态库中向Swift公开Objc私有头_Ios_Objective C_Swift_Unit Testing_Testing - Fatal编程技术网

Ios 在静态库中向Swift公开Objc私有头

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

我需要在iOS的静态库中混合使用Swift和Objective-C代码。我已经创建了
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桥接头用于公共头,可以从框架外部访问。此外,它还通过在私有标题下显式定义一些标题来帮助提高可读性。