我有一个适用于Android和iOS的多平台Kotlin项目。通用模块中的功能是这样写的:
fun test(successCallback: (String) -> Unit, errorCallback: (Error) -> Unit) {
successCallback("success")
}
Android功能用法:
Common.test(successCallback = {
Log.d(TAG, it)
},
errorCallback = {
Log.d(TAG, it)
}
})
iOS功能用法:
Common.test(successCallback: { it in
print(it)
return KotlinUnit()
}, errorCallback: { error in
print(error)
return KotlinUnit()
})
JVM世界似乎可以自行处理返回类型(单元)(无需返回任何内容),而您必须在iOS中返回KotlinUnit()
。
我想在iOS上实现相同的目标(不使用return KotlinUnit()
进行回调)
答案 0 :(得分:1)
请参阅https://github.com/JetBrains/kotlin-native/pull/2968,它将在即将发布的Kotlin / Native版本中合并。