当前位置: > > > Swift - 将Data数据转换为[UInt8](bytes字节数组)

Swift - 将Data数据转换为[UInt8](bytes字节数组)

有时上传或者发送图片、文字时,需要将数据转换为 bytes 字节数组。下面介绍两种将 Data 转换为 [UInt8] 的方法。 
假设我们有如下 Data 数据要转换:
let data = "航歌".data(using: .utf8)!

方法一:使用 [UInt8] 新的构造函数

let bytes = [UInt8](data)
print(bytes)

方法二:通过 Pointer 指针获取

let bytes = data.withUnsafeBytes {
    [UInt8](UnsafeBufferPointer(start: $0, count: data.count))
}
print(bytes)
评论2
  • 2楼
    2018-09-14 16:59
    wenfeng223

    航哥,[UInt8]怎么转成字符串呢,我一直都是.toString()的,但是今天发现有问题,不知道是不是我接收(tcp/ip)过来的数据本身有问题,执行到.toString()的时候就报错了,一直用.toString()转的都没问题

    站长回复

    是不是编码问题。你试试先把[UInt8]转成Data,再从Data转成String。

  • 1楼
    2017-08-03 16:58
    123

    为什么一定是UNIT8字符

    站长回复

    [UInt8]表示字节数组,UInt8表示1字节(8位)