如何將數據轉換爲UInt8數組?Swift 3.0將數據轉換爲數組<UInt8>
func serialPort(_ serialPort: ORSSerialPort, didReceive data: Data) {
print("recieved:\(data)")
let arr: [UInt8] = Data(???)???
}
日誌 收到70個字節
如何將數據轉換爲UInt8數組?Swift 3.0將數據轉換爲數組<UInt8>
func serialPort(_ serialPort: ORSSerialPort, didReceive data: Data) {
print("recieved:\(data)")
let arr: [UInt8] = Data(???)???
}
日誌 收到70個字節
明白了!
var recived = [UInt8]()
func serialPort(_ serialPort: ORSSerialPort, didReceive data: Data) {
recived.removeAll()
print("recieved:\(data))")
recived.append(contentsOf: data)
}
let data = "ABCD".data(using: .ascii)!
data.withUnsafeBytes { (pointer: UnsafePointer<UInt8>) in
//Prints 67 which is the ASCII value of 'C'
print(pointer[2])
}
在斯威夫特3,Data
作品的UInt8
一個Collection
,所以你可以簡單地使用Array.init
。
var recived: [UInt8] = []
func serialPort(_ serialPort: ORSSerialPort, didReceive data: Data) {
print("recieved:\(data))")
recived = Array(data)
}
但是,Array.init
(或Array.append(contentsOf:)
)複製Data
的內容,所以它是沒有效率的,當你需要的Data
規模龐大的工作。