bridge -swift.h文件突然消失了

时间:2015-01-08 20:48:30

标签: xcode swift

我正在一个objective_c项目中导入一个swift文件,并通过使用@objc标记Swift类并在与之通信的文件中导入projectname-swift.h来做得很好。 然而,我没有编译它一个月,现在,当我尝试这样做时,编译器抱怨它没有找到包含文件,因此发生在Swift类中。我甚至尝试编译旧版本,但我遇到了同样的问题。也许Xcode或我的安装有一些变化。 Xcode screen capture! 我该怎么做才能恢复这种情况? Configuration

我发现DerivedSources目录中没有任何内容。我甚至尝试删除完整的DerivedData文件夹,但是在DerivedSources仍为空的情况下重建它。 Derived Source

3 个答案:

答案 0 :(得分:2)

问题是您正在尝试导入名为"iPuja-Swift.h"的内容,但这是错误的名称。您的项目名为 iPuja Pro ,并根据该项目命名自动生成的Swift-to-Objective-C桥接标头。你忘记了“专业”部分。

如果您对此桥接标题的名称有疑问,请深入查看派生数据中的Intermediates文件夹中的构建应用程序并查看它。这是您需要匹配的名称。这是一个终端命令,应该找到所有相关的标题,以便您可以看到它们的名称:

$ find ~/Library/Developer/Xcode/DerivedData -name "*Swift.h"

以下是典型应用的屏幕截图;正如您所看到的,我必须执行此检查,因为标题名称是从项目名称中以一种棘手的方式派生的:

enter image description here

答案 1 :(得分:1)

我知道这是一个旧线程,但无论如何:有同样的问题。文件一直存在,然后突然显然已经消失了。 原来是一个阻止该文件编译的swift文件中的一个简单错误;但是,错误从未出现在错误列表中;相反,有几十条投诉关于“projectname-Swift.h”文件不存在。

修正了swift文件以便它再次编译etvoilà:“projectname-Swift.h”

答案 2 :(得分:0)

这是Apple的一个不好的伎俩。斯威夫特与它无关。当项目没有正确编译时,有时报告的错误提到加载Swift模块是不可能的。到目前为止,我再也没有遇到过这种情况。