首页 > 解决方案 > 将 modulename-Swift.h 文件导入 ObjC .h 文件

问题描述

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

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

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

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

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

标签: objective-cswiftxcodebridging-headerobjc-bridging-header

解决方案


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

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

https://stackoverflow.com/a/27626493/3208043


推荐阅读