我每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/

10-12 02:00