ios - 如何在不使用任何形式的查找表的情况下在 Swift for iOS 8 中列出(几乎)所有表情符号?

标签 ios xcode swift ios8

我正在使用 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/

相关文章:

Swift - 更改 Xcode 中的按钮框架

objective-c - Restkit路由错误

Xcode 8 文件缩进 : How to set 2 spaces as default configuration?

ios - Realm 将 List<> 对象添加到现有对象

iphone - 无法访问developer.apple.com 中的证书、标识符和配置文件

ios - 无法在 xCode 4.4 上的新项目上的 UIWebView 上显示键盘

ios - UITextField 与 TextField 效果相关的问题

iphone - 下拉 UItableView 切换 View Controller

ios - 如何在 Swift 中根据存在及其值(value)来描述一个 nil 对象?

ios - 快速的白色背景,从圆形的图像