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 声明
我有一个项目混合了 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
.