在Swift中如何将KMM返回的KotlinByteArray转为NSData并加载图片?
KotlinByteArray 转 NSData/加载图片(KMM + Swift)
方法一:转换为NSData(或Swift Data)
KMM返回的KotlinByteArray在Swift端会暴露bytes属性,这是一个[UInt8]类型的数组,直接用它初始化Swift的Data即可(Data和NSData可以无缝桥接):
// 假设从KMM获取的字节数组实例为kotlinImageBytes let imageData = Data(kotlinImageBytes.bytes) // 转为NSData(可选,因为Swift Data可直接用于图片加载) let nsImageData = imageData as NSData // 加载图片 if let image = UIImage(data: imageData) { yourImageView.image = image }
方法二:直接加载图片(简化步骤)
无需单独转NSData,直接用KotlinByteArray的bytes属性初始化UIImage:
if let image = UIImage(data: Data(kotlinImageBytes.bytes)) { yourImageView.image = image }
注意事项
- 确认KMM返回的字节数组是合法的图片二进制数据(如JPEG、PNG格式),否则
UIImage初始化会返回nil - Swift中
Data是NSData的原生包装类型,大部分场景下直接用Data即可,无需特意转换为NSData
内容的提问来源于stack exchange,提问作者Dinesh G
相关产品推荐
相关产品推荐

