在 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 项目的特定目标中使用框架?

如何在 Objective-C 中导入 SKTUtils?

在框架头文件中找不到 swift 文件

我可以使用桥接头在基于 Swift 的项目中导入 Objective-C++ 类吗?

如何在 SWIFT Xcode 中导入 Rollout.io

在桥接头中导入头文件导致的 Swift 编译器错误