为了在XCTests中使用主要目标的快速类,您只需将目标模块名称导入XCTests。至少,这就是我遇到的问题。
现在,因为我们的项目设置很复杂,所以这似乎不起作用。将目标模块导入XCTests时,我得到了
无法导入桥接标头' /path/to/header/file.h'
当然,我确保文件存在。我认为,这对我失败的唯一原因是因为我们在ObjC和swift之间有一个循环导入。即Swift类导入ObjC类,这些类也导入swift类。为了做到这一点,我们篡改了桥接标题:
// See http://stackoverflow.com/questions/24098408/how-can-i-add-forward-class-references-used-in-the-swift-h-header
#ifndef Target_Bridging_Header_h
#import "Target-Swift.h"
#else
@class SomeSwiftClass;
@class OtherSwiftClass;
#endif
任何人都面临这个问题?无论如何要解决这个问题?
更新
我已经验证了我之前关于循环导入的假设。谢天谢地,我很容易打破这个循环;现在我们在任何objective-c标头中都没有#import "Target-Swift.h"
。它完全隐藏在实现文件中。该程序目前编译良好。