Individuele EMOJI-symbolen gescheiden in drie symbolen [DUPLICEER]

Als u Textedit start en Emoji & AMP kiest; Symbolen In Bewerken heeft u een lijst met 291-symbolen voor Smileys and People Under Sierra (MacOS 10.12). En ik wil al deze 291 Emoji-symbolen vermelden met NSCollectionView. Nu, ik heb een string bestaande uit 291 Emoji-symbolen. En ik scheid ze om als volgt een array te maken.

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()
    }
}

De bovenstaande code uitvoeren, de array die ik daadwerkelijk 408 symbolen bevat. Als ik een kijkje neem, scheiden sommige van hen zichzelf in drie symbolen. Bijvoorbeeld, een symbool genaamd man met blond haar verandert zichzelf in drie symbolen. Een van hen is een gendersymbool. Dit onderwerp suggereert dat een single Emoji-symbool kan een combinatie zijn van een paar of meer symbolen. Is er iets dat ik kan doen om deze specifieke tekenreeks te scheiden met 291-symbolen in een array met 291 symbolen? Bedankt.


Antwoord 1, Autoriteit 100%

Een betere manier om een ​​verzamelweergave met Emoji te maken, zijn met hun Unicode-tekens. https://apps.timwhitlock.info/emoji/tables/Unicode somt de emoji weer die beschikbaar zijn. Een implementatie die ik heb gebruikt is mijn antwoord hier: emoji picker iOS swift


Antwoord 2, Autoriteit 100%

Dit gedrag is eigenlijk verwacht. In Swift 3.0 wordt Emoji niet meegeteld als Grafiem Cluster. Veel emoji zijn eigenlijk een reeks van enkele emoji verbonden door nul met schrijnwerker. Dus de characterProperty geeft je eigenlijk alle single emoji. Dat is waarom je 408 single emoji hebt van 291 Top Level Emoji

Dit gedrag van Emoji String wordt verbeterd veel in Swift 4. In Swift 4 kunt u rechtstreeks bellen met countnaar uw Emoji-string en u krijgt precies 291 Resultaat

Neem voor meer informatie over dit onderwerp een kijkje hier

Other episodes