一尘不染

导入桥接头失败

swift

我已经阅读了很多有关类似问题的问答,但是我还没有找到解决方案。如果有人能阐明一点,那就太好了。

我创建了一个Swift项目,现在我想将其与一些Objective-
C结合起来。仅在尝试#import我的Chartboost.h文件时,才出现我的“无法导入桥接头”。因此,只要桥接头文件中没有任何内容,Xcode就会找到它,并且没有任何问题。但是一旦我添加了这个:

#import <Chartboost/Chartboost.h>

我收到该错误以及其他38个错误,说“快速编译器错误-此处不允许使用函数定义”。

我已经正确导入了我的框架。而且我的框架搜索路径是正确的。而且只有当我导入Chartboost框架时。UIKit和Foundation可以正常工作。

这是导致该问题的原因。…首先,我创建了一个新的Obj-C文件,然后单击“是,当Xcode给我一个弹出窗口询问它是否可以配置桥接头时。这创建了“事实”
-Bridging-Header.h“

然后,我确定在Swift编译器-代码生成下,Objective-C桥接头路径正确。

我什至输入了一个非常特定的路径/Users/me/Desktop/FunFacts/FunFacts-Bridging-
Header.h,它仍然显示“无法导入”。

我还将“定义模块”设置为“是”(因为我听说这可能会有所帮助)。我的产品模块名称是FunFacts。

为什么在尝试添加#import时FunFacts-Bridging-Header.h无法导入?


阅读 166

收藏
2020-07-07

共1个答案

一尘不染

我想出了两种解决方案!

1)这不是最漂亮的方法,但是我将所有代码从Chartboost.h文件复制并粘贴到了Bridging-
Header.h文件中,而不是导入了。这工作了。但是我知道有更好的方法,所以我一直在狩猎…

2)我认为,下一步是正确的解决方案。我项目的(不是目标)框架搜索路径为空。因此,我继续将Chartboost SDK的路径添加如下:/ Users / me
/ Desktop / Apps / SDKs / Chartboost
现在,它可以毫无问题地构建和运行,并且我不必复制所有内容并将其粘贴到桥接中标头。所有需要的是

#import <Chartboost/Chartboost.h>

如果有人遇到类似问题,请阅读我在问题中所做的操作,然后再回答此问题。

2020-07-07