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

Que*_*e20 11 xcode objective-c ios swift

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

为了实例化Objective-C中描述的对象,我理解我需要一个Bridging-Header文件,其中包含我将在Swift类中使用的所有头文件的导入.它在我的项目中运行良好.我创建了我需要的所有类,我在Swift中继承了Objective-C类,一切都很好.

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

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

这就是我所做的:

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

当然,我通过实际的模块名称,一个我发现下更换为yourprojectname 产品模块名称包装上构建设置部分.此外,项目名称中没有空格.

我忘记了一步吗?

谢谢您的帮助.

pha*_*lat 8

确保-Swift.h从.m Objective-C文件而不是.h头文件导入文件.该文档只谈从.M进口:

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

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