【问题标题】:iOS Swift project, already imported Objective-C file and I want to import a swift class into this Objective-C [duplicate]iOS Swift项目,已经导入了Objective-C文件,我想将一个swift类导入这个Objective-C [重复]
【发布时间】:2017-03-28 03:44:18
【问题描述】:

我有一个 Swift 项目,我成功地将一些 Objective C 类文件(比如说 ObjectiveClass.h)添加到这个 Swift 项目中,并且能够在项目中使用它,使用桥接头。现在在 ObjectiveClass.h 类中,我想导入 Swift 项目的 Swift 类。我该怎么做?

我已经搜索了很多,但还没有找到任何答案。大多数回答的问题是关于如何将 Objective-C 类导入到 Swift 项目中,或者将 Swift 类导入到 Objective-C 项目中。但我的情况不同

【问题讨论】:

    标签: ios objective-c swift bridging-header objc-bridging-header


    【解决方案1】:

    非常简单。只需在 swift 类之前声明@objc public。像这样

    @objc public class YourSwiftClass : NSObject {
    
    }
    

    现在在目标 c 类中使用 #import "YourProjectName-Swift.h"。您将收到未找到提到的文件的错误。不用担心,只需运行该项目一次。当您在运行时单击该文件时,您将看到 "YourProjectName-Swift.h" 的内容。现在您可以访问 swift 类的任何方法。

    【讨论】:

      【解决方案2】:

      直接来自appledoc

      当您将 Swift 代码导入到 Objective-C 时,您依靠 Xcode 生成的头文件将这些文件公开给 Objective-C。这个自动生成的文件是一个 Objective-C 头文件,它在你的目标中声明了 Swift 接口。它可以被认为是 Swift 代码的总括标题。此标头的名称是您的产品模块名称,后跟“-Swift.h”。

      大多数人不明白的是,xyz-Swift.h 头文件将由 xcode 生成,你只需要相信这一点。起初我在搜索整个项目的源文件夹,这个文件在哪里,找不到。你只需要导入它,瞧。有时你会收到xyz-Swift.h not found 之类的错误消息,清理你的项目,它会顺利运行。

      【讨论】:

      • 但我的情况是我有 Swift 项目,并且我已经使用 Bridging header 成功地将一个 Objective-C 文件导入到 Swift 项目中。但是我在Swift中声明了一些常用函数,我想在Objective-C文件中使用这些函数,我不知道如何将swift文件导入到.m Objective-C文件中
      • 仔细阅读答案和文档。
      猜你喜欢
      • 1970-01-01
      • 2016-09-14
      • 2023-04-10
      • 2018-07-04
      • 2015-09-14
      • 1970-01-01
      • 2015-10-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多