Xcode 8与混合Swift和Objective-c项目生成的"ModuleName-Swift.h"标头未找到

myu*_*ews 26 xcode objective-c ios xcode8

我在Xcode 8中有一个混合了Swift和Objective-C的项目,它使用生成的"ModuleName-Swift.h"头文件将swift导入到Objective-c类中,但预处理器无法找到生成的头文件并抛出导入时出错.

"词法或预处理器问题:'未找到ModuleName-Swift.h文件'"

在此输入图像描述

该项目编译得很好,但预处理器抛出了未找到标头的错误,并且对于在类内部调用的任何Swift类,没有语法突出显示或代码完成.使用Objective-c中的Swift类很难解决Xcode 8无法识别的问题,但编译得很好.

关于如何在Xcode 8中安抚预处理器的任何想法?

Ern*_*dez 25

我有完全相同的问题.添加一个仅针对一个目标的新文件(错误地)后发现解决方案,并注意到读取Swift类没有问题.因此,如果您有多个目标,并且由于迁移您不需要构建和运行它们,建议您这样做.

  • 我在项目中有多个目标,看起来在构建另一个目标之后,预处理器问题就会消失.即使没有添加任何新项目而没有按指示设置目标,也会发生这种情况,而只需要构建两个目标以便解决错误. (2认同)

Mes*_*NEŞ 5

当我们有多个目标时遇到此问题.如果新创建的目标的Swift编译器中的Objective-c Generated Interface Header Name变量与原始目标的值不同.将其更改为与原始目标相同的值.请参阅以下内容:

newtargetname-Swift.h更改为originaltargetname-Swift.h以获取新目标

在此输入图像描述


dat*_*tha 5

为了解决这个问题 Xcode 9.2,经过长时间的研究,我发现我的“Objective-c 生成的接口头名称”是以产品名称“ productname-Swift.h ”命名的在此输入图像描述