Here's another option:
Use this extension in Swift to convert
[UInt8]
to `Data`:
extension Array where Element == UInt8 {
var data: Data {
return Data(self)
}
}
Use this Kotlin helper to convert
NSData
to Kotlin `ByteArray`:
// Create in file named NSDataExtensions.kt
@OptIn(ExperimentalForeignApi::class)
fun NSData.toByteArray() = ByteArray(length.toInt()).apply {
usePinned {
memcpy(it.addressOf(0), bytes, length)
}
}
Then, in your Swift code, usage is:
let bytes: [UInt8] = [2, 1, 3, 5]
let kotlinByteArray = NSDataExtensionsKt.toByteArray(bytes.data)