在 Swift 项目中使用 Objective C 类中的 Swift 类

Posted

技术标签:

【中文标题】在 Swift 项目中使用 Objective C 类中的 Swift 类【英文标题】:Using Swift class in Objective C class with swift project 【发布时间】:2016-02-17 05:39:36 【问题描述】:

我的项目是Swift 项目,其中包含Objective C 中的自定义类。现在我正在尝试在我的Objective C 类中使用另一个自定义类,它在 Swift 中。我能够获得该课程,但它的所有方法都不可可访问。

项目:斯威夫特

自定义库:Swift

想用在:Objective C(另一个自定义库)

所有方法在该自定义类中都是公开的,但我仍然无法访问它。我也关注了this。请指导我

任何帮助将不胜感激。

【问题讨论】:

帮不上忙,因为我从来没有这样做过,但this 可能会有所帮助。 你能在 myproject-Swift.h 中看到你的方法吗?? Can't use Swift classes inside Objective-C的可能重复 @nielsbot 不一样。我正在编辑 【参考方案1】:

是的,您可以在拖放目标类时使用,然后创建一个桥文件,此文件导入目标 c 类 .h 文件,如 import "test.h"

【讨论】:

感谢您的回复。包括桥接文件,因此我可以使用该自定义目标 C 类。我想在那个 Objective C 类中包含自定义 Swift 类。请再次检查我的问题 你需要导入ProjectName-Swift.h。请注意,它是项目名称 - 其他答案错误地使用了类名。这个单独的文件是一个自动生成的头文件,它为项目中的所有 Swift 类定义了 Objective-C 接口,这些类要么被 @objc 注释,要么继承自 NSObject。 我这样做只是为了将 Swift 导入到 Objective C。我可以得到这个类,但我无法使用它的方法

以上是关于在 Swift 项目中使用 Objective C 类中的 Swift 类的主要内容,如果未能解决你的问题,请参考以下文章

尝试在 Swift 项目中使用 Objective C 可可豆荚,桥接文件编译为 Swift 代码

如何在objective c框架中使用swift扩展

iOS - 在同一个项目中使用 Swift 和 Objective c?

无法在 Swift 项目中添加 Objective C 桥接头

无法在 Swift 项目中添加 Objective C 桥接头

通过在 iOS 中创建桥文件在 Objective-C 项目中使用 Swift 代码