在swift 3.0中将String转换为数据

时间:2016-10-10 19:39:08

标签: swift

我正在尝试将字符串转换为数据类型。我认为这就是我所需要的,但如果我尝试打印它就会打印“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)
}

我做错了什么?

1 个答案:

答案 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的东西编写了许多其他有用的数据扩展