不能在Objective-C单元测试中使用Swift类

Dru*_*rux 11 objective-c ios xctest swift ios8

为了在现有的Objective-C项目中使用Swift类,我遵循了这个配方MyProject.这很好.

但是,我仍然无法在同一项目的单元测试中使用相同的Swift类.编译器标记了Objective-C单元测试所说#import "MyProjectTests-Swift.h"的行file not found.

如果试图改变测试目标的Product Module Name从默认MyProjectTestsMyProject作为一个评论认为(解答)问题.然而,编译器现在标记了我的Objective-C单元测试所说#import "MyProject-Swift.h"的行file not found.

那么如何将Swift类集成到用Objective-C编写的(XCTest)单元测试中呢?Apple提供任何食谱吗?

Dru*_*rux 16

根据@ SushiGrassJacob的评论(见这里),以下内容解决了这个问题:

  1. 确保Swift类的目标是MyProjectMyProjectTest.
  2. 在单元测试中,#import"MyProjectTests-Swift.h".

  • 谢谢!这终于是我正在寻找的答案.将Swift文件添加到测试目标中真的很蠢 - .- (3认同)
  • 将文件添加到测试目标仅适用于具有最少导入的简单项目。如果你的 swift 类继承自 objc 类,那么它将失败。 (2认同)

小智 7

第1步

转到您的测试目标 > 构建设置 > 标头搜索路径,然后添加$CONFIGURATION_TEMP_DIR/YourProject.build/DerivedSources进去。

第2步

#import "YourProject-Swift.h"