2016-11-10 67 views

回答

0

明白了!

var recived = [UInt8]() 

func serialPort(_ serialPort: ORSSerialPort, didReceive data: Data) { 
     recived.removeAll() 
     print("recieved:\(data))") 
     recived.append(contentsOf: data) 
} 
0

使用withUnsafeBytes

let data = "ABCD".data(using: .ascii)! 
data.withUnsafeBytes { (pointer: UnsafePointer<UInt8>) in 
    //Prints 67 which is the ASCII value of 'C' 
    print(pointer[2]) 
} 
8

在斯威夫特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規模龐大的工作。