1
我有一个混合了Swift和Objective-C的项目。Swift和Objective C:Project-Swift.h和Project-Bridging-Header.h冲突
我目前正试图从Objective-C编写的View Controller中调用Swift中的方法。
为了公开该方法,我将View Controller的头添加到了Bridging-Header.h文件中。
但是,视图控制器引用了Project-Swift.h,在编译桥接头时显然“不存在”。如果我删除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'
我似乎有一个鸡和蛋的问题。
关于如何解决这个问题的任何想法?我可以在不包含桥接头的情况下调用Objective-C方法吗?
感谢您的快速回复。向前声明这些类很好用(谢谢!)但是我无法使用此方法向前声明协议。 (例如,'@protocol SecondSwiftControllerDelegate;'产生警告'无法找到协议定义')。 –
我希望你没有你需要的协议,因为可悲的是你不能转发声明那些协议。 我会尝试在ObjC中使用此协议声明。事情是,你正在尝试做什么,你正在导致一个包含循环。编译器需要桥接头才能编译Swift部分,并且需要编译Swift部分才能获得ObjC部分的协议定义。 –