混合Swift和Objective C:找不到“ProjectName-Swift.h”文件

所以我正在开发一个包含Swift和Objective-C类的iOS项目。

为了实例化Objective-C中描述的对象,我理解我需要一个Bridging-Header文件,其中包含我必须在Swift类上使用的所有头文件的导入。 它在我的项目中非常有用。 我创建了我需要的所有类,我在Swift中inheritance了Objective-C类,一切都很好。

我的问题是在相反的情况下:在Objective-C文件中实例化一个swift对象。 所以我读到我需要有这些选项:

  • 将模块定义
  • 在我正在处理的* .m文件中添加#import "-Swift.h"

这就是我所做的:

我更改了需要更改的构建设置上的所有值。 我添加了import行,我甚至尝试创建头文件,但我仍然"-Swift.h" file not found错误。

当然,我用实际的模块名称替换了YourProjectName,我在“构建设置”的“ 打包”部分的“ 产品模块名称”下找到了该名称 。 此外,项目名称中没有空格。

我忘记了一步吗?

感谢您的帮助。

确保从.m Objective-C文件而不是.h头文件导入-Swift.h文件。 文档只讨论从.m导入:

…将您的Swift代码的Xcode生成的头文件导入到您想要使用Swift代码的任何Objective-C .m文件中。

-Swift.h文件是在构建期间生成的,我发现从.h文件导入它总是失败,即使我知道该文件存在。 因为它是由构建生成的,所以我猜测它在编译器筛选标题时被清除,并在编译.swift文件后重新生成。