如何将KotlinByteArray转换为字符串,反之亦然?

时间:2020-06-10 16:20:02

标签: kotlin kotlin-multiplatform kotlin-native

我正在从kotlin调用一个函数到swift,在这里我必须将KotlinByteArray转换为字符串,然后将字符串转换为KotlinByteArray。

该函数调用位于快速侧。因此必须转换快速代码。

2 个答案:

答案 0 :(得分:0)

我以下述方式做了同样的事情-

val valueInString="123456"

val valueInByteArray = ByteArray(valueInString)

答案 1 :(得分:0)

这里最好的选择是为@ IR42建议的stdlib函数String.encodeToByteArray()ByteArray.decodeToString()提供包装。只需在您的Kotlin /本机代码中输入

fun String.ExportedToByteArray(startIndex: Int, 
    endIndex: Int, 
    throwOnInvalidSequence: Boolean
): ByteArray {
return this.encodeToByteArray(startIndex, endIndex, throwOnInvalidSequence)
}

然后,您将可以直接从Swift代码中使用它们。

关于这种复杂方法的原因。这些功能默认情况下不会进入框架的API,因为编译器无法选择应导出stdlib的哪一部分。因此,它旨在使开发人员明确指定所需的功能。