如何使用Swift打印Data类型变量的内容?

use*_*610 13 ios swift

我要做的就是取一个字符串并获取其十六进制值.我一直关注这篇文章.这是我在操场上的代码:

let str = "Say Hello to My Little Friend"
let data = str.data(using: String.Encoding.utf16)
print("\(data!)")
Run Code Online (Sandbox Code Playgroud)

但是,我的代码只打印:

"60字节\n"

如何打印十六进制值?供参考,它应该是:

5361792048656c6c6f20746f204d79204c6974746c6520467269656e64
Run Code Online (Sandbox Code Playgroud)

ken*_*ytm 25

由于Data是UInt8的序列,您可以将每个字节映射到字符串,然后将它们连接起来:

data.map { String(format: "%02x", $0) }.joined()
Run Code Online (Sandbox Code Playgroud)

  • 我比接受的答案更喜欢这个,因为它使程序员可以完全控制输出格式。 (2认同)
  • var dataMap = data.map { String(format: "%02x", $0)}.joined(); 打印(“\(数据映射)”) (2认同)

vad*_*ian 18

只是

print(data! as NSData)
Run Code Online (Sandbox Code Playgroud)

PS:你期望的十六进制是.utf8


归档时间:

查看次数:

14199 次

最近记录:

7 年 前