将 modulename-Swift.h 文件导入 ObjC .h 文件

Importing modulename-Swift.h file to ObjC .h file

是否可以将 modulename-Swift.h 文件导入另一个 .h 文件,以便测试目标也可以编译?

目前,我正在将 modulename-Swift.h 导入应用程序目标 headers 之一,但是,测试目标无法编译。

当我将导入语句移至 .m 文件时,我能够同时编译应用程序和测试。

但是,我必须求助于前向协议声明才能解决此问题 - modulename-Swift.h 文件包含一个协议。

所以,问题是我是否可以在 .h 文件中导入该文件?

不,您不能在 .h 文件中导入 modulename-Swift.h。您需要创建前向声明(将 @protocol Something; 添加到您的 .h)并在 .m 文件中导入 Swift 模块。

解决此问题的另一种方法是在 .m 文件的类别中声明协议一致性。可以在这个 Whosebug 答案中找到更多详细信息: