我每2秒从蓝牙获取数据,
func device(device: JDevice!, didUpdateData data: NSData!, type typeCode: Int8, error: NSError!) {
print(data)
}
打印结果为:
<6d000000>
<6e000000>
<6f000000>
<70000000>
<71000000>
<72000000>
如何将这些数据转换为整数或字符串?
编辑-------------------------
let des = data.description as NSString
let dataAsString = des.substringWithRange(NSMakeRange(1, data.description.characters.count-2))
var value = UInt8(0)
data.getBytes(&value, range: NSMakeRange(0, dataAsString.characters.count/2))
print(value)
我找到了解决方案,但是我不清楚为什么在
dataAsString.characters.count
函数中使用data.getBytes
作为范围的长度。我也收到此错误:
'NSRangeException', reason: '*** -[_NSInlineData getBytes:range:]: range {0, 8} exceeds data length 4'
*** First throw call stack:
这个错误是什么意思?谢谢!
最佳答案
let des = data.description as NSString
let dataAsString = des.substringWithRange(NSMakeRange(1, data.description.characters.count-2))
var value = UInt8(0)
data.getBytes(&value, range: NSMakeRange(0, dataAsString.characters.count/2))
print(value)
关于swift - NSData从蓝牙到整数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34195431/