如何在 Swift UI 中将 unicode 与字符串插值结合起来?

问题描述 投票:0回答:1

希望您能提供帮助 - 这可能是一个简单的问题。

我有一个表情符号的 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 swiftui unicode emoji string-interpolation
1个回答
0
投票

无法在 Swift 字符串中插入 unicode 转义序列,因为该字符串不包含转义序列的文本 - 它很早就被“编译”到字符中,因此错误消息需要转义序列的其余部分。

如果

gameModel.thisWord
的类型是String,则可以使用基数为16的Int将其解析为十六进制,然后使用UnicodeScalar生成字符,String可以从中生成字符串。

String(UnicodeScalar(Int(gameModel.thisWord, radix: 16)!)!)
© www.soinside.com 2019 - 2024. All rights reserved.