我有Objective-c项目,我在其中添加了swift文件。我在一些头文件中创建了桥文件并导入了swift文件而没有任何问题。
但是我需要将一些头文件导入swift文件,方法是在"<project-name>-Bridging-Header.h"
文件中添加它们。
如果我把头文件放在那个桥文件中,这个头文件之前是import swift文件; Xcode给出了错误信息:swift桥文件的“找不到文件”。
即:
当我在“ProjectBlaBla-Bridging-Header.h”中导入“readingPage.h”时,我在“readingPage.h”中收到错误消息:"ProjectBlaBla-Swift.h file not found"
有什么建议吗?
感谢
答案 0 :(得分:3)
您无法在-Bridging-Header.h文件中直接或间接引用-Swift.h文件。
如果你打开-Swift.h,你会看到顶部附近的一行,在我的情况第99行:#import "/Users/.../...-Bridging-Header.h"
,意思是-Swift.h已经导入-Bridging-Header.h,所以导入回创建循环依赖。
为避免这种情况,您在-Bridging-Header.h中导入的任何标头必须使用对answers to this question中所述的Swift类或协议的正向引用。
简而言之,如果readingPage.h
使用名为MySwiftClass
的Swift类,您应该:
-Swift.h
删除对readingPage.h
的所有引用。-Swift.h
readingPage.m
@class MySwiftClass;
插入readingPage.h
,让Objective-C知道这样的类存在并在其他地方声明。答案 1 :(得分:1)
答案 2 :(得分:0)
两个选项
注意:Prefix.pch是一个预编译的头文件,可以更快地进行编译。您无需重新导入在prefix.ch文件中导入的任何文件。