混合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文件后重新生成。