希望您能提供帮助 - 这可能是一个简单的问题。
我有一个表情符号的 unicode 值列表,我正在尝试随机显示一个。 这是我硬编码显示笑脸的地方:
VStack {
Text(String("\u{1F600}")).font(.largeTitle).foregroundStyle(Color.white).bold().padding(25)
}
我希望能够从字符串变量中提取值,但我在尝试同时转义 unicode 和转义字符串插值时遇到了一些困难。
我试过这个:
Text(String("\u{\(gameModel.thisWord)}")).font(.largeTitle)
.foregroundStyle(Color.white).bold().padding(25)
...但是我遇到了“\u{...} 转义序列中的预期 }”。
我也尝试过用这类事情来解决它:
var updatedString = "\u{99999}".replacingOccurrences(of: "99999", with: gameModel.thisWord)
Text(String(updatedString)).font(.largeTitle)
.foregroundStyle(Color.white).bold().padding(25)
...但这并没有将 unicode 翻译成表情符号。
任何帮助将不胜感激!
谢谢!
标记
无法在 Swift 字符串中插入 unicode 转义序列,因为该字符串不包含转义序列的文本 - 它很早就被“编译”到字符中,因此错误消息需要转义序列的其余部分。
如果
gameModel.thisWord
的类型是String,则可以使用基数为16的Int将其解析为十六进制,然后使用UnicodeScalar生成字符,String可以从中生成字符串。
String(UnicodeScalar(Int(gameModel.thisWord, radix: 16)!)!)