Swift/Obj-C 桥接 header 而不是 found/failed 导入

Swift/Obj-C bridging header not found/failed to import

所以我有一个 Objective-C 代码库,我正在尝试向其中添加 Swift 文件。我创建了桥接 header,它 大多数 有效,但 运行 在导入某些 类 时出现问题。我在我的 Swift 文件中使用 Project-Bridging-Header.h 中的 类 并通过导入 Project-Swift 成功使用了我的 Swift 类。 h 到我的 Obj-c 类。但是,导入某些 类 会导致文件未找到错误。这些 类 引起问题的只是 obj-c 类 我创建的。

我收到的错误是: 'Project-Swift.h' 文件未找到,导入桥接失败 header 'path/to/header'。

我以前看过这些 header 的工作,并且在 objective c 中成功地使用了 swift 代码,反之亦然。就在我将某些 objective-c 类 导入我的桥接 header 时,它会抱怨。

有没有人遇到过这种情况或知道可能会发生什么?

我遇到了类似的问题,结果证明我有一个关键参考,其中我的 Swift class 使用了我的 OjbC class 而后者又使用了 Swift class.

我通过在 ObjC header 中使用 froward 声明并在 .m

中导入 Project-Swift.h 解决了这个问题

我假设您已经阅读了本指南,Using Swift with Cocoa and Objective-C (Swift 2.2), otherwise you might want to take a look first to see whether the guidelines are helpful to your situation. You may want to double check particularly for some special case like Referencing a Swift Class or Protocol in an Objective-C Header

如果这不起作用,请仔细检查有问题的 类 是否设置了正确的目标。清理并重建您的项目。