我正在使用 Xcode playground 在 Swift 中使用表情符号来制作一些简单的 iOS8 应用程序。为此,我想创建类似于 unicode/emoji 映射/描述的东西。
为此,我需要一个循环来打印表情符号列表。我正在考虑这些方面的事情
for i in 0x1F601 - 0x1F64F {
var hex = String(format:"%2X", i)
println("\u{\(hex)}") //Is there another way to create UTF8 string corresponding to emoji
}
但是 println() 抛出一个错误
Expected '}'in \u{...} escape sequence.
有没有一种我缺少的简单方法可以做到这一点?
我了解并非所有条目都会对应一个表情符号。此外,我还可以引用 http://apps.timwhitlock.info/emoji/tables/unicode 创建一个查找表,但我想要一种实现相同目的的懒惰/简单方法。
最佳答案
您可以使用 Range
遍历这些十六进制值:0x1F601...0x1F64F
,然后使用 创建
:String
>Unicode标量
for i in 0x1F601...0x1F64F {
guard let scalar = UnicodeScalar(i) else { continue }
let c = String(scalar)
print(c)
}
输出:
😁😂😃😄😅😆😇😈😉😊😋😌😍😎😏😐😑😒😓😔😕😖😗😘😙😚😛😜😝😞😟😠😡😢😣😤😥😦😧😨😩😪😫😬😭😮😯😰😱😲😳😴😵😶😷😸😹😺😻😼😽😾😿🙀🙁🙂🙃🙄🙅🙆🙇🙈🙉🙊🙋🙌🙍🙎🙏
如果你想要所有的表情符号,只需在范围数组上添加另一个循环:
// NOTE: These ranges are still just a subset of all the emoji characters;
// they seem to be all over the place...
let emojiRanges = [
0x1F601...0x1F64F,
0x2702...0x27B0,
0x1F680...0x1F6C0,
0x1F170...0x1F251
]
for range in emojiRanges {
for i in range {
guard let scalar = UnicodeScalar(i) else { continue }
let c = String(scalar)
print(c)
}
}
对于那些询问的人,可以在这里找到可用表情符号的完整列表:https://www.unicode.org/emoji/charts/full-emoji-list.html
可以在emoji-sequences.txt
文件中找到所有表情符号的可解析 unicode 序列列表,该文件位于您感兴趣的版本目录下:http://unicode.org/Public/emoji/
截至 2021 年 9 月 15 日,Apple 设备上可用的表情符号标准的最新版本是 13.1。
关于ios - 如何在不使用任何形式的查找表的情况下在 Swift for iOS 8 中列出(几乎)所有表情符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26170876/