1
這是我目前所擁有的。我想知道是否有更好的方法來做到這一點,或者更好的方法是將數組轉換爲所需的類型,而無需遍歷整個結構。在Swift中將位數組轉換爲結構的最佳方法
我的輸入是包含像素數據的CFDataRef
。我想將其轉換爲像素數組。
struct Pixel {
let r: UInt8
let g: UInt8
let b: UInt8
let a: UInt8
}
var intArray = [UInt8](count: CFDataGetLength(data), repeatedValue: 0)
let dataRange = CFRangeMake(0, CFDataGetLength(data))
CFDataGetBytes(data, dataRange, &intArray)
var pixelArray : [Pixel] = []
for var i = 0; i < intArray.count; i += 4 {
let p = Pixel(r: intArray[i], g: intArray[i+1], b: intArray[i+2], a: intArray[i+3])
pixelArray.append(p)
}
您可能會看到疊加在intArray上的UnsafeBufferPointer。詳細信息由您決定。 –
GoZoner
2015-03-19 04:04:29