【发布时间】:2017-02-21 00:03:39
【问题描述】:
我已经在 Swift 操场上重现了这个问题,但还没有解决...
我想在 UILabel 中打印一系列字符中的一个。如果我明确声明该角色,它会起作用:
// This works.
let value: String = "\u{f096}"
label.text = value // Displays the referenced character.
但是,我想构造字符串。下面的代码似乎产生了与上面的行相同的结果,除了它没有。它只生成字符串\u{f096},而不是它引用的字符。
// This doesn't work
let n: Int = 0x95 + 1
print(String(n, radix: 16)) // Prints "96".
let value: String = "\\u{f0\(String(n, radix: 16))}"
label.text = value // Displays the String "\u{f096}".
我可能遗漏了一些简单的东西。有什么想法吗?
【问题讨论】:
-
可能只是
"\\u{f0\(String(n,radix: 16))}"中多余的“\”?只是猜测 - 我不知道字符串格式如何快速工作。 -
同意它可能是,但它不会编译。这就是为什么我在发布之前在操场上重现了这个问题。我收到错误:Scratch.playground:7:27: Expected '}' in \u{...} 转义序列
-
同样的问题。最初的反斜杠仍然需要转义,结果字符串显示为 "\u{f096}" 而不是必需的字符。