关于ios:不能在Objective-C单元测试中使用Swift类

Can't use Swift classes inside Objective-C unit test

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

但是,我仍然不能在同一个项目的单元测试中使用相同的swift类。编译器在我的Objective-C单元测试中用file not found标记#import"MyProjectTests-Swift.h"这一行。

如果试图将测试目标的Product Module Name从默认的MyProjectTests改为MyProject,正如对这个(未回答的)问题的评论中所建议的那样。然而,编译器现在标记了我的Objective-C单元测试中使用file not found表示#import"MyProject-Swift.h"的行。

那么,如何将swift类集成到(xctest)用objective-c编写的单元测试中呢?苹果有什么菜谱吗?


根据@sushigrassjacob的评论(请参见此处),以下解决了该问题:

  • 确保swift类同时针对MyProjectMyProjectTest
  • 在单元测试中,导入"myprojecttests swift.h"。

  • STEP -1

    转到测试目标>构建设置>头搜索路径,并在其中添加$CONFIGURATION_TEMP_DIR/YourProject.build/DerivedSources

    STEP -2

    #import"YourProject-Swift.h"


    转到测试目标>生成设置>头搜索路径,并在其中添加$configuration_temp_dir/myproject.build/derivedsources。对于我来说,只有在没有检查针对myprojecttests的swift类的情况下才能工作。资料来源:https://medium.com/if-let-swift-programming/ios-tests-working-with-objective-c-and-swift-class-together-aaf40f91a27c