Kotlin Native 开发 NSData转ByteArray
String转NSData
val nsdata = ("Hello" as NSString).dataUsingEncoding(NSUTF8StringEncoding)
val hello = "Hello"
NSData.create(bytes = hello.cstr.ptr, length = hello.length)NSData转ByteArray
// 实现1
if (nsdata != null) {
val byteArray = ByteArray(nsdata.length.toInt())
byteArray.usePinned {
memcpy(it.addressOf(0), nsdata.bytes, nsdata.length)
}
}
// 实现2
val byteArray = ByteArray(data.length.toInt())
byteArray.apply {
usePinned {
memcpy(it.addressOf(0), data.bytes, data.length)
}
}
// 实现3
val byteArray = data.bytes?.readBytes(data.length.toInt())ByteArray 转 NSData
var nsdata: NSData
byteArray?.usePinned {
nsdata = NSData.dataWithBytes(it.addressOf(0), it.get().size.toULong())
}