在Kotlin多平台中使用Swift协议默认实现
我尝试在Kotlin多平台XCFramework中使用Swift代码 我有一个协议,扩展了这个协议的默认实现在Kotlin多平台中使用Swift协议默认实现,swift,kotlin,kotlin-multiplatform,xcframework,Swift,Kotlin,Kotlin Multiplatform,Xcframework,我尝试在Kotlin多平台XCFramework中使用Swift代码 我有一个协议,扩展了这个协议的默认实现 @objc protocol Greeting { var something: String { get } } extension Greeting { var something: String { return "Hello from Swift" } } 在Platform.kt我正在写 class Greetin
@objc protocol Greeting {
var something: String { get }
}
extension Greeting {
var something: String {
return "Hello from Swift"
}
}
在Platform.kt我正在写
class GreetingImpl: NSObject(), GreetingProtocol {
override fun something(): String {
return (this as GreetingProtocol).something()
}
}
actual class Platform actual constructor() {
val object = GreetingImpl()
val value = object.something() //Application builds but falls here
}
如何在Kotlin Multiplatform中使用Swift协议默认实现?据我所知,存在两个主要问题:
@objc
注释。虽然这是Swift方面的限制,但这妨碍了Kotlin提供完全的互操作性(Kotlin/Native不支持与Swift的直接互操作性,仅通过Objective-C)