在 Objective C 文件中使用纯 Swift class 的任何方法?

Any way to use a plain Swift class in Objective C files?

这个问题不是关于桥接 headers 之类的。我已经得到了所有的工作。我的问题具体是关于我需要对我的 Swift class 做些什么才能让它们出现在 Obj-C 代码中。

举个例子,这个简单的 class:

class MyClass {
    var value: String = ""
}

如果我的项目中有此 class,它不会包含在 auto-generated 的 MyProject-Swift.h 文件中。我的理解是,为了在 Objective-C 中使用 Swift class,我的 class 需要派生自 Objective-C 知道的 class .这是我开始怀疑实际需求的地方。

如果我的 class 是从 UIViewController 派生的,那么没问题。但是,如果这只是一个模型 object,那么它就不会派生自任何东西。虽然完全可以轻松地使我的 class 从 NSObject 派生,因此,它可以正确导入到 Obj-C 代码中,但从 NSObject 派生可能会导致其他问题。

因此,如果我不想让我的 class 派生自 NSObject,我该怎么做才能让它对我的 Obj-C 文件可见?是否有我找不到的文档解释了如何执行此操作?

据我目前所知,只有从 NSObject 继承的 Swift classes 可以声明为 @objc 并桥接到 Objective-C 项目中。

如果没有 conformance/inheritance,您最终会失去 Objective-C 的一些重要功能,例如消息发送。

综上所述,Objective-C class 必须从父项 class 继承,默认根 class 是 NSObject。您几乎肯定只想继承并使您的 class 成为 PONSO。