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

时间:2016-04-23 01:56:50

标签: ios objective-c swift

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

这是问题所在, 如果我想在swift中为类O创建一个单元测试类(U)并运行它,我会遇到一个问题,即没有找到桥接头。我假设这是因为O使用S并且这些细节在桥接头文件中,然后我再次尝试在U中使用S和O导致失败。如果我添加任何其他不使用S的Obj-C类,它的工作完全正常。

这是我已经做过的事情,确保你知道发生了什么, 我在O.h中有一个S类的前向声明,因为我知道O.h文件不支持保存-Swift.h import语句,因此它在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.

1 个答案:

答案 0 :(得分:0)

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

中是很重要的。