【问题标题】:NSData from bluetooth to integerNSData 从蓝牙到整数
【发布时间】: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:

这个错误是什么意思?谢谢!

【问题讨论】:

    标签: swift bluetooth


    【解决方案1】:
    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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-29
      • 2014-10-04
      • 1970-01-01
      • 2014-09-28
      • 2017-12-14
      • 2021-12-26
      • 1970-01-01
      相关资源
      最近更新 更多