gpt4 book ai didi

ios - 单元测试时的 Swift 和 Obj-c 互操作性问题

转载 作者:行者123 更新时间:2023-11-30 13:28:55 26 4
gpt4 key购买 nike

我有一个用 Obj-C 编写的 iOS 应用程序,它也定义了单元测试。现在,我添加了一个新功能,在 Obj-C 类 (O) 中使用 swift 类 (S)。我为主目标和测试目标都设置了桥接头。到目前为止,一切都运行良好。

问题来了,如果我想在 swift 中为 O 类创建一个单元测试类(U)并运行它,我会收到一个问题,提示未找到桥接 header 。我假设这是因为 O 使用 S 并且这些详细信息位于桥接头文件中,然后我再次尝试在 U 中使用 S 和 O 导致失败。如果我添加任何其他不使用 S 的 Obj-C 类,它工作得很好。

这是我已经完成的操作,确保您知道发生了什么,我在 O.h 中有一个 S 类的前向声明,因为我知道 O.h 文件不支持保存 -Swift.h 导入语句,因此它位于 O.m 文件中。

支持这种情况吗?

Class O uses Class S. 
Class U can test class O by using class S.

Note: O->Objective-C
S->Swift Class
U->Unit test class in swift.

最佳答案

答案很简单,但不是很明显。我必须按照使用顺序将导入语句放置在桥接头文件中。例如:如果一个类依赖于另一个类,那么首先将依赖项的 import 语句放在桥接 header 中,然后再将调用类的文件放在桥接 header 中,这一点很重要

关于ios - 单元测试时的 Swift 和 Obj-c 互操作性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36805758/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com