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

时间:2016-08-06 05:31:24

标签: ios objective-c swift

关于如何使用swift code in objective c有很多问题。我有一个基于swift的项目。有Objectice C文件,我需要使用swift代码。

Xcode没有自动创建ProjectName-Swift.h。所以我手动创建并检查以下内容。

  1. 生成的界面标题名称:ProjectName-Swift.h

  2. 产品模块名称:myproject

  3. 定义模块:YES

  4. 嵌入式内容包含Swift:YES

  5. 安装Objective-C兼容性标头:YES

  6. 在swift类中添加@objc

  7. 导入UIKit 导入SwiftyJSON

    @objc 类用户:NSObject,NSCoding { }

    然后在目标c文件中Import ProjectName-Swift.h。但是会给出错误Unknown Type name User

    我尝试使用添加@class User它使用@class

    提供错误前向引用

    如何修复此错误

1 个答案:

答案 0 :(得分:1)

希望您在阅读@AnupamMishra引用的文档后已经解决了问题,但以防万一:尝试从项目中删除您手动创建的ProjectName-Swift.h文件。它隐藏了由Xcode自动生成的同名文件,但未在项目中列出。该文件仍在那里,位于DerivedData目录的深处。

另一个观察结果:您没有必要在Objective-c Generated Interface Header Name中设置Build Settings。默认情况下,Xcode会生成一个并将其命名为myproject-Swift.h,因为myproject是您的Product Module Name