triste sorprendido significado significa que este enojado emoticon emojis copiar babeando ios swift string unicode emoji

ios - sorprendido - que significa este emoji 🌚



¿Cómo saber si dos emojis se mostrarán como un emoji? (1)

El emoji 👍🏼 consta de 2 unicodeScalars 👍 U + 1F44D, 🏼 U + 1F3FC.

¿Cómo se puede identificar como 1 emoji ''mostrado'' como se mostrará como tal en iOS?


Actualización para Swift 4 (Xcode 9)

A partir de Swift 4, una "secuencia de Emoji" se trata como un solo grupo de grafemas (de acuerdo con el estándar Unicode 9):

let s = "a👍🏼b👨‍❤️‍💋‍👨" print(s.count) // 4

entonces las otras soluciones ya no son necesarias.

(Antigua respuesta para Swift 3 y anteriores :)

Una posible opción es enumerar y contar las "secuencias de caracteres compuestas" en la cadena:

let s = "a👍🏼b👨‍❤️‍💋‍👨" var count = 0 s.enumerateSubstringsInRange(s.startIndex..<s.endIndex, options: .ByComposedCharacterSequences) { (char, _, _, _) in if let char = char { count += 1 } } print(count) // 4

Otra opción es encontrar el rango de las secuencias de caracteres compuestas en un índice dado:

let s = "👨‍❤️‍💋‍👨" if s.rangeOfComposedCharacterSequenceAtIndex(s.startIndex) == s.characters.indices { print("This is a single composed character") }

Como métodos de extensión de String :

// Swift 2.2: extension String { var composedCharacterCount: Int { var count = 0 enumerateSubstringsInRange(characters.indices, options: .ByComposedCharacterSequences) { (_, _, _, _) in count += 1 } return count } var isSingleComposedCharacter: Bool { return rangeOfComposedCharacterSequenceAtIndex(startIndex) == characters.indices } } // Swift 3: extension String { var composedCharacterCount: Int { var count = 0 enumerateSubstrings(in: startIndex..<endIndex, options: .byComposedCharacterSequences) { (_, _, _, _) in count += 1 } return count } var isSingleComposedCharacter: Bool { return rangeOfComposedCharacterSequence(at: startIndex) == startIndex..<endIndex } }

Ejemplos:

"👍🏼".composedCharacterCount // 1 "👍🏼".characters.count // 2 "👨‍❤️‍💋‍👨".composedCharacterCount // 1 "👨‍❤️‍💋‍👨".characters.count // 4 "🇩🇪🇨🇦".composedCharacterCount // 2 "🇩🇪🇨🇦".characters.count // 1

Como puede ver, la cantidad de caracteres Swift (grupos de grafemas extendidos) puede ser mayor o menor que la cantidad de secuencias de caracteres compuestas.