Ios 在基于swift的项目中使用目标C文件中的swift代码

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

关于如何在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

    @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或“如果调试-则它在模拟器中工作,但在构建版本时不工作”中时,也可能会出现此错误。