發生我有含16個元件UInt
秒的陣列,我需要將其轉換爲16個字節的Data
對象。轉換未從[UINT]數組到數據
我使用下面的代碼轉換,但它是將其轉換爲128個字節,而不是16個字節。
let numbers : stride(from: 0, to: salt.length, by: 2).map() {
strtoul(String(chars[$0 ..< min($0 + 2, chars.count)]), nil, 16)
}
/*numbers is a [UInt] array*/
let data = Data(buffer: UnsafeBufferPointer(start: numbers, count:number.count))
/*Data returns 128 bytes instead of 16 bytes*/
請糾正我,我做錯了什麼。
NO。實際上它是16 * 8 = 128字節。它每個int值佔用8個字節。 – Arasuvel
看來,你實際上* *想要的是一個十六進制編碼字符串轉換爲'Data'值。看看(例如)http://stackoverflow.com/questions/40276322/hex-binary-string-conversion-in-swift尋找可能的解決方案。 –