Int16到Byte数组错误的数组顺序swift 4

时间:2018-02-09 13:30:58

标签: swift4

我正在尝试将Int16转换为[UInt8]:

var track:Int16 = 4
let trackData = Data(bytes: &track, count: 2)

但结果是

[4, 0]

我想知道是否有办法获得

[0, 4]

所以当我这样做时:

let value = Int16(bigEndian: trackData.withUnsafeBytes { $0.pointee })

我会 4 而不是 1024

1 个答案:

答案 0 :(得分:1)

这不是一个火箭科学,但byteSwapped可以为你完成这项工作,例如:

let value = Int16(bigEndian: trackData.withUnsafeBytes { $0.pointee }).byteSwapped

这将使您的案例中的值为4

注意: 即使Apple Docs也没有对此属性说太多(有点自我解释,说实话),所以只是为了完成,这里有byteSwapped的参考。