这就是如何将数据复制到整数数组中(Swift 3/4):
if let data = characteristic.value {
var dataArray = [Int16](repeating: 0, count: data.count/MemoryLayout<Int16>.stride)
dataArray.withUnsafeMutableBufferPointer {
_ = data.copyBytes(to: $0)
}
let finalAnswer = Double(dataArray[1])/128
}
如果您只需要一个值,则可以访问该值,而无需
创建阵列:
if let data = characteristic.value {
let i16value = data.withUnsafeBytes { (ptr: UnsafePointer<Int16>) in
ptr[1]
}
let finalAnswer = Double(i16value)/128
}
另一种选择:
if let data = characteristic.value {
let i16value = data.subdata(in: 2..<4).withUnsafeBytes {
UnsafeRawPointer($0).load(as: Int16.self)
}
let finalAnswer = Double(i16value)/128
}