我正在尝试将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
答案 0 :(得分:1)
这不是一个火箭科学,但byteSwapped
可以为你完成这项工作,例如:
let value = Int16(bigEndian: trackData.withUnsafeBytes { $0.pointee }).byteSwapped
这将使您的案例中的值为4
。
注意: 即使Apple Docs也没有对此属性说太多(有点自我解释,说实话),所以只是为了完成,这里有byteSwapped
的参考。