这个问题不是关于桥接 header 之类的。我已经得到了所有的工作。我的问题具体是关于我需要对 Swift 类执行哪些操作才能使它们显示在 Obj-C 代码中。
以这个简单的类为例:
class MyClass {
var value: String = ""
}
如果我的项目中有此类,它不会包含在自动生成的 MyProject-Swift.h
文件中。我的理解是,为了在 Objective-C 中使用 Swift 类,我的类需要派生自 Objective-C 知道的类。这是我开始怀疑实际需求的地方。
如果我的类派生自 UIViewController
,那么没问题。但如果这只是一个模型对象,那么它就不会派生自任何东西。虽然完全可以轻松地使我的类从 NSObject
派生,并因此将其正确导入到 Obj-C 代码中,但从 NSObject 派生可能会导致其他问题。
所以如果我不想让我的类派生自 NSObject,我该怎么做才能让它对我的 Obj-C 文件可见?是否有我找不到的文档解释了如何执行此操作?
最佳答案
据我目前所知,只有继承自 NSObject 的 Swift 类才能声明为 @objc 并桥接到 Objective-C 项目中。
如果没有这种一致性/继承,您最终将失去 Objective-C 的一些关键功能,例如消息发送。
综上所述,Objective-C 类必须从父类继承,默认根类是 NSObject。您几乎肯定只想继承并使您的类(class)成为 PONSO。
关于ios - 有什么方法可以在 Objective C 文件中使用普通的 Swift 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48328146/