在 Objective-C(测试)代码中导入框架的 Swift 类
Posted
技术标签:
【中文标题】在 Objective-C(测试)代码中导入框架的 Swift 类【英文标题】:Importing a Swift class of a framework in Objective-C (test) code 【发布时间】:2018-11-27 21:06:36 【问题描述】:我正在尝试在我的单元测试代码中从我的框架MyFramework
导入一个 Swift 类:
在我的 Objective-C 测试文件中,我这样做了:
@import MyFramework;
此行导致编译错误:
Include of non-modular header inside framework module 'MyFramework': 'src/core-ios/MyFramework/Classes/MyFramework-Bridging-Header.h'
在“MyFramework-Swift.h”文件中。在该文件中,我可以看到来自
的普通导入#import "src/core-ios/MyFramework/Classes/MyFramework-Bridging-Header.h"
我不知道该怎么办。我的框架“定义”了模块化头文件,但听起来问题在于包含在其整个路径中的桥接头文件,而不仅仅是做#import <MyFramework/MyFramework-Bridging-Header.h>
。
任何帮助表示赞赏!
【问题讨论】:
【参考方案1】:在目标 c 中调用 swift 类时
在 Bridging-Header 中添加 #import "myClass.h"。这是目标c类 你在哪里使用 swift 类。
在 myClass.m 中添加 #import
在 myClass.h 或 myClass.m 中添加“@swiftcalss;”
第一点或第二点可能会导致您的错误。
【讨论】:
以上是关于在 Objective-C(测试)代码中导入框架的 Swift 类的主要内容,如果未能解决你的问题,请参考以下文章
考虑到需要在某些类中导入框架,如何在 iOS 项目的特定目标中使用框架?
我可以使用桥接头在基于 Swift 的项目中导入 Objective-C++ 类吗?