如何在Swift for iOS 8中列出几乎所有的表情符号而不使用任何forms的查找表?

我在Swift中用一些简单的iOS8应用程序的Xcode游乐场玩emojis。 为此,我想创build一个类似于unicode / emoji map / description的东西。

为了做到这一点,我需要一个循环,让我打印出一个emojis列表。 我正在想这个问题

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创build一个查找表,但是我想要一个实现相同的懒/易方法。

您可以使用Range0x1F601...0x1F64F来遍历这些hex值,然后使用UnicodeScalar创buildString

 for i in 0x1F601...0x1F64F { var c = String(UnicodeScalar(i)) 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 { var c = String(UnicodeScalar(i)) print(c) } }