我正在尝试将字符串转换为数据类型。我认为这就是我所需要的,但如果我尝试打印它就会打印“12字节”
let tString = "Hello World!"
if let newData = tString.data(using: String.Encoding.utf8){
print(newData)
self.peripheral?.writeValue(newData, for: positionCharacteristic, type: CBCharacteristicWriteType.withResponse)
}
我做错了什么?
答案 0 :(得分:9)
你没有做错任何事。这就是Data目前如何进行调试打印输出。它随着时间的推移而改变。它有时打印更像NSData。根据调试打印格式非常脆弱,我认为最好直接拥有它。我发现以下内容非常有用:
extension Data {
func hex(separator:String = "") -> String {
return (self.map { String(format: "%02X", $0) }).joined(separator: separator)
}
}
这允许我用
之类的东西替换你的简单print(newData)
print(newData.hex())
或
print(newData.hex(separator:"."))
如果我的眼睛需要帮助解析字节
抛开,我自己做了很多BLE的事情,并为BLE的东西编写了许多其他有用的数据扩展