Swift和Objective C:Project-Swift.h和Project-Bridging-Header.h冲突

Swift and Objective C: Project-Swift.h and Project-Bridging-Header.h conflict

我有一个项目混合了 Swift 和 Objective-C。

我目前正尝试在用 Objective-C 编写的视图控制器上从 Swift 调用方法。

为了公开该方法,我将视图控制器的 header 添加到 Bridging-Header.h 文件中。

但是,View Controller 引用了 Project-Swift.h,显然 'does not exist' 正在编译桥接 header。如果我删除 Project-Swift.h 的包含,项目会编译,但是我无法从 Objective-C 端访问我需要的 Swift 功能。

准确的错误是:

"/Project/ViewController.h:10:9: error: 'Project-Swift.h' file not found
#import "Project-Swift.h"
        ^
<unknown>:0: error: failed to import bridging header '/Project/Project-Bridging-Header.h'

我好像有先有鸡还是先有蛋的问题

关于如何解决这个问题有什么想法吗?我可以在不包括桥接 header 的情况下调用 Objective-C 方法吗?

我建议您将 Project-Swift.h 文件包含在 .m 文件中,所以在 ViewController.m 中。如果您在 header 中需要在其中定义任何 classes,只需添加带有 @class MyClassFromProjectSwift.

的前向 class 声明