2017-07-15 25 views
1

enter image description here個人表情符號分爲三個符號

如果啓動文本編輯,選擇表情&符號編輯下,你將有291個符號表情和人民列表下,塞拉利昂( macOS 10.12)。我想用NSCollectionView列出所有這些291個表情符號。現在,我有一個由291個表情符號組成的字符串。我將它們分開以創建一個數組,如下所示。

class SmileyViewController: NSViewController, NSCollectionViewDelegate, NSCollectionViewDataSource { 
    // MARK: - Variables 
    var emojiArray = [String]() 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     let emojiString = "..." // 291 symbols 
     emojiArray = emojiString.characters.map { String($0) } 
     print(emojiArray.count) // 408, not 291 
     collectionView.reloadData() 
    } 
} 

運行上面的代碼,我得到的數組實際上包含408個符號。如果我仔細看看,其中一些將自己分成三個符號。例如,一個名爲的男人,金髮將自己變成三個符號。其中之一是性別符號。 this topic表明單個表情符號可能是幾個或更多符號的組合。我能做些什麼來將包含291個符號的這個特定字符串分隔成一個包含291個符號的數組?謝謝。

enter image description here

回答

1

此行爲實際上是預期的。在swift 3.0中,表情符號不被視爲字形羣集。許多表情符號實際上是一個由連接零的單個表情符號序列。所以character屬性實際上是給你所有的單個表情符號。這就是爲什麼你必須從291 頂級的表情符號

408分單的表情符號表情符號串的這種行爲在迅速4.得到改​​善很多在急速4,你可以直接打電話count到你的表情符號的字符串,你會得到正是由於291結果

有關此主題的更多信息,看看here

+1

我沒有問爲什麼會發生。你爲什麼指點我自己提到的一個話題? –