2

iOS で Kotlin Native の実験を行っていますが、試したかったことの 1 つは、Kotlin で定義されたインターフェイスを Swift で実装することでした。ただし、その Swift オブジェクトを Kotlin コードに戻そうとすると、クラッシュしてしまいます。

kotlin gradle プラグイン バージョン 1.2.30 と kotlin ネイティブ バージョン 0.6.1 を使用しています

最小限の例を次に示します。Kotlin コードは KotlinCommon という名前のフレームワークにコンパイルされ、xcode プロジェクトに含まれます。

DemoClass.kt

class DemoClass {
    fun process(dependency: Dependency) {
        dependency.foo()
    }
}

interface Dependency {
    fun foo()
}

SwiftDependency.swift

import KotlinCommon

class SwiftDependency : KotlinCommonDependency {
    func foo() {
        NSLog("hello")
    }
}

次に、iOS UIから実行しようとします

let module = KotlinCommonDemoClass()
let dependency = SwiftDependency()
module.process(dependency: dependency)

3 行目により、次のエラーでクラッシュが発生します。

*** NSForwarding: warning: object 0x101858d20 of class 'KotlinNativeDemo.SwiftDependency' does not implement methodSignatureForSelector: -- trouble ahead
Unrecognized selector -[KotlinNativeDemo.SwiftDependency toKotlin:]

このユースケースは Kotlin Native でサポートされていませんか? または、設定が間違っている可能性がありますか?

4

1 に答える 1