所以我一直在使用 BLE 设备及其数据。从 BLE 设备读取时,数据存储在数据对象中。现在对于这个例子,我将使用 Epoch 时间,因为这(应该)很容易检查。所以pod Bluejay保存数据,打印数据时如下debugPrint("Epoch Time: \(data as NSData)")
结果是这个 "Epoch Time: <869c0200>"
.到目前为止,我认为一切都很好。当我复制值时 869c0200
放入Mac计算器(程序员模式),字节翻转,上网站查看epochtimeconverter我在 1970 年得到一个合理的日期。因为它总是在电池没电后重置到 1970 年。现在,当我设置断点并查看值时,我看到了一些东西。
_bytes UnsafeMutableRawPointer? (_rawValue = 0x00000001c04364b0)
_rawValue Builtin.RawPointer 0x1c04364b0
他们每个人都给我不同的时间。有没有人可以帮助我一步一步地解释这些数据并以正确的方式使用它?
简而言之:“如何从我的 BLE 设备正确读取/操作纪元时间?”
提前感谢您花时间阅读。
最佳答案
您无法按照您尝试打印的方式打印 NSData。您必须将其转换为字符串(字节数组)。
例如:
let yourDataByte = [UInt8](advertiseData as! NSData)
let yourString = String(NSString(format:"%02X", Int(yourDataByte[0])))
关于iOS 解释 BLE 数据和字节 swift 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46805975/