Avatar ·

Warum verhalten sich Emoji-Zeichen wie 👩‍👩‍👧‍👦 in Swift-Strings seltsam?

Hallo zusammen! Ich entwickle eine iOS-App, die Texte mit Emojis verarbeitet. Dabei bin ich auf seltsames Verhalten von Swift bei der Arbeit mit zusammengesetzten Emojis gestoßen, insbesondere bei Familien und Flaggen. Zum Beispiel habe ich einen String `let family = "👩‍👩‍👧‍👦"`. Ich erwarte, dass `family.count` 1 zurückgibt (schließlich ist es ein Emoji!), aber stattdessen erhalte ich 7. Und wenn ich versuche, das erste Zeichen mit `family.first` zu erhalten, wird nicht das gesamte Emoji zurückgegeben, sondern ein seltsames Zeichen. Hier ist der Code, der mich verwirrt hat: ```swift let family = "👩‍👩‍👧‍👦" print(family.count) // 7 print(family.utf8.count) // 25 print(family.utf16.count) // 11 print(family.unicodeScalars.count) // 7 print(family.first) // Optional("👩") ``` Ich hatte erwartet, dass count 1 ist und first das gesamte Emoji zurückgibt. Warum zählt Swift diese Zeichen unterschiedlich? Wie arbeitet man richtig mit solchen Emojis in Swift? Besonders interessiert mich, wie man Strings, die solche zusammengesetzten Emojis enthalten, sicher kürzen kann, ohne sie zu zerreißen.