objective-c - 导入 modulename-Swift.h 文件到 ObjC .h 文件

标签 objective-c swift xcode bridging-header objc-bridging-header

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

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

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

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

那么,问题是我是否可以将该文件导入到 .h 文件中?

最佳答案

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

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

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

关于objective-c - 导入 modulename-Swift.h 文件到 ObjC .h 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55379294/

相关文章:

objective-c - iOS 应用程序崩溃,符号化日志不透明

objective-c - 标记实例变量@private

ios - 带有 iOS 11 大标题断动画的 UISplitViewController

ios - 应用内购买已购买

php - 如何将文本字段值带入 xcode Obj c 中的其他 viewController?

ios - Watchkit - 如何在组中设置元素一个在另一个下面

ios - uiTableViewCell 添加行和图像,第二次点击删除行

swift - 用户通过拖动垂直线调整 subview 的大小

ios - TextView 在 CollectionView 内的 TableViewFooter 中在键盘上滚动

ios - 如何实现占位符文本在 UITextField 中逐字符消失