ios - Swift 以十进制获取 characteristic.value

标签 ios swift bluetooth bluetooth-lowenergy

我尝试使用 Swift 3 在 Xcode 中创建一个小型 iOS 应用程序。我尝试连接到 BLE 设备,然后读取电池电量。

我收到这样的回复:

...UUID = Battery Level, properties = 0x12, value = <30>...

然后我尝试将十六进制的 30 转换为十进制的 48。 但我不知道怎么办。

我试过这个:

print(String(bytes: characteristic.value!, encoding: String.Encoding.utf8))
print(Int(strtoul(str, nil, 16)))
let dataBLE = String(data: characteristic.value!, encoding: String.Encoding(rawValue: String.Encoding.utf8.rawValue))
print(dataBLE)

但是这些都不起作用。如何将 characteristic.value 中的值从十六进制转换为十进制?

最佳答案

这应该有效:

let data = characteristic.value
var byte:UInt8 = 0
data.copyBytes(to: &byte, count: 1)

let valueInInt = Int(byte)
print(valueInInt)

关于ios - Swift 以十进制获取 characteristic.value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41192187/

相关文章:

ios - iOS 11 上的 Phonegap/Cordova 选择选项后再次显示弹出窗口

ios - 我可以在 iOS 中以编程方式设置对象属性吗?

swift - 反向压缩一个集合

ios - 云台背景检测

ios - CoreBluetooth 与非 iOS 设备的连接

iOS:AVPlayer play 有时无法播放

ios - SwiftUI 中的自定义模式转换

ios - 使用 Swift 3 'self.present' 呈现一个新的 View Controller

android - 在 Android 上添加多个 onClick 和 onActivityResult 值的问题

ios - 如何使用 UserDefaults.standard 在 Swift 3.0 中保持 session ?