【发布时间】:2015-12-10 06:48:16
【问题描述】:
我每 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)
我找到了解决方案,但我不太清楚为什么我在data.getBytes 函数中使用dataAsString.characters.count 作为范围的长度。
我也遇到了这个错误:
'NSRangeException', reason: '*** -[_NSInlineData getBytes:range:]: range {0, 8} exceeds data length 4'
*** First throw call stack:
这个错误是什么意思?谢谢!
【问题讨论】: