【问题标题】:Show Character value in Swift 4在 Swift 4 中显示字符值
【发布时间】:2018-01-18 17:01:36
【问题描述】:

我正在开发一个适用于Characters 的程序。问题是调试器将它们显示为smallUTF16 值(至少我的猜测)。见下图:

此行为在 AppCode 中是相同的。

那么,如何让调试器显示调试中的字符呢?

【问题讨论】:

  • 请问为什么不使用String,它在Swift 4 中被认为是CollectionElementCharacter
  • @LeoDabus 它显示 97。
  • @daltonclaybrook 因为我的数据结构(队列和堆栈)使用泛型。因此,如果我使用String,然后使用for token in input 分别对每个Character 执行某些操作,则它不允许我使用Enqueue,除非我使用String(token) 转换它,这很烦人。
  • 为什么不在控制台检查打印的字符?
  • @LeoDabus 你的意思是手动打印出来?

标签: swift debugging character swift4


【解决方案1】:

使用printterminator 似乎是个问题。如果您只想打印每个字符的 String 值,只需将您的打印语句更改为:

print(c)

或者

print(String(c))

或者

print("\(c)")

或者

print(c.description)

【讨论】:

  • 你完全没有抓住重点。问题不在于打印。图片甚至显示调试器还没有达到任何打印。问题是调试器没有以可读格式显示Character 值,而是以smallUTF16 显示值。
  • 所以你想使用Characters 但你想让Xcode 假装他们是Strings?这没有任何意义。
  • 当我打印Character 时,我看到“a”(例如)。为什么调试器不显示它没有意义?
【解决方案2】:

对于smallUTF16表示,可以通过右击字符的_representation>“View Value As”>uint16的向量来查看UTF16码位:

【讨论】:

  • kkkk OP 想要在调试区域看到字符本身(“a”)而不是它的十六进制字符串
  • @LeoDabus 哎呀,错过了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-15
  • 2019-07-07
  • 1970-01-01
相关资源
最近更新 更多