我有一个 actual 我想实现swift的类 Hashable 但我找不到swift的进口货 Hashable Kotlin内部。
actual
Hashable
如果我想实施say UIView 我可以很容易地导入它,并按如下方式使用它:
UIView
import platform.UIKit.UIView actual final class Example actual constructor() : UIView(.... Stuff here) { }
但是呢 Hashable ?以及swift标准库中的其他内容?我在里面找不到它们 platfrom ,我也看了里面 platfrom.objc ,但在任何地方都找不到标准lib。
platfrom
platfrom.objc
Hashable 是在Swift中定义的,KMP目前不支持Swift互操作。在Kotlin中,您只能使用ObjC提供的代码。
但是所有 NSObject 子类是 Hashable 默认情况下,因此从KMP创建的任何对象也将是可散列的。
NSObject
请注意,在的情况下 NSObject ,散列是基于对象指针的,而不是基于对象属性的,正如您在Swift中可能习惯的那样。您可以从Swift中覆盖此逻辑:
extension KObject { public override var hash: Int { // your logic } }
或从Kotlin实现:
override fun hash(): NSUInteger { // your logic }