簡體   English   中英

Swift 3:如何將字節數組轉換為Data?

[英]Swift 3: How to convert byte array into Data?

我知道如何將int值轉換為數據

let value: NSInteger = 1
let valueData:Data = Data(buffer: UnsafeBufferPointer(start: &intVal, count: 1))

現在我想對以以下方式表示的RGB顏色執行相同操作0xRRGGBB

我該如何實現? 我應該將其寫為String,即“ 543621”,然后將其轉換為字節數組,然后將其轉換為Data嗎?

將顏色存儲為UInt32實例似乎是適當的,在這種情況下,您已經發布了一種用於從中初始化Data實例的方法

var pink: UInt32 = 0xCC6699

let pinkData = Data(buffer: UnsafeBufferPointer(start: &pink, count: 1))
print(pinkData.map {$0}) // [153, 102, 204, 0]

print(0x99, 0x66, 0xCC) // 153 102 204

正如MartinR在下面的評論中指出的那樣,要確保十六進制數字表示形式0xCC6699以其小尾數表示形式存儲(即使對於采用大尾數主機字節順序的系統也是如此), pink變量應初始化為:

var pink = UInt32(0xCC6699).littleEndian

// or ...
var pink = UInt32(littleEndian: 0xCC6699)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM