Ios 在基于swift的项目中使用目标C文件中的swift代码
关于如何在objective c中使用Ios 在基于swift的项目中使用目标C文件中的swift代码,ios,objective-c,swift,Ios,Objective C,Swift,关于如何在objective c中使用swift代码有很多问题。我有一个基于swift的项目。有一个Objectice C文件,我需要使用swift代码 Xcode没有自动创建ProjectName Swift.h。因此,我手动创建并检查以下内容 生成的接口头名称:ProjectName Swift.h 产品模块名称:myproject 定义模块:YES 嵌入内容包含Swift:YES 安装Objective-C兼容性标题:YES 在swift类中添加@objc 导入UIKit 导入快捷JSON
swift代码有很多问题。我有一个基于swift的项目。有一个Objectice C文件,我需要使用swift代码
Xcode没有自动创建ProjectName Swift.h
。因此,我手动创建并检查以下内容
生成的接口头名称:ProjectName Swift.h
产品模块名称:myproject
定义模块:YES
嵌入内容包含Swift:YES
安装Objective-C兼容性标题:YES
在swift类中添加@objc
导入UIKit
导入快捷JSON
@objc类用户:NSObject,NSCoding
{
}
然后在目标c文件中导入ProjectName Swift.h
。但给出错误未知类型名称用户
我试过添加@class用户
,它使用@class向前引用时出错
如何修复此错误希望您在阅读了@anupamishra引用的文档后已经解决了此问题,但以防万一:尝试从项目中删除手动创建的
ProjectName Swift.h
文件。它隐藏由Xcode自动生成且未在项目中列出的同名文件。该文件仍然存在,位于DerivedData目录的深处
另一个观察:您不必在
构建设置
中设置Objective-c生成的接口头名称
。Xcode将生成一个并在默认情况下将其命名为myproject Swift.h
,因为myproject
是您的产品模块名称 有两个标题。你把他们弄糊涂了。无法手动创建生成的接口标头。这不是项目的一部分。@马特,你能解释一下吗。我还是confused@SunnyShah,苹果已经很容易解释了,请仔细阅读-@SunnyShah你是如何解决这个问题的?您是在哪里找到要导入swift类的文件的?当将“MyProject swift.h”放在启用了ifdef FB SONARKIT或“如果调试-则它在模拟器中工作,但在构建版本时不工作”中时,也可能会出现此错误。