Swift - Emojis in einer Zeichenfolge durch Leerzeichen ersetzen

Ich habe eine Methode, die URLs in einer Zeichenfolge erkennt und mir sowohl die URLs als auch die Bereiche zurückgibt, in denen sie gefunden werden können. Alles funktioniert perfekt, bis Emojis auf der Saite sind. Beispielsweise

"I'm gonna do this callenge as soon as I can swing again \n http://youtu.be/SW_d3fGz1hk"

Wegen der Emojis lautet die aus dem Text extrahierte URLhttp: //youtu.be/SW_d3fGz Anstatt vonhttp: //youtu.be/SW_d3fGz1h. Ich dachte mir, dass die einfachste Lösung darin besteht, die Emojis in der Zeichenfolge durch Leerzeichen zu ersetzen (da ich für einige Textstile den korrekten Bereich benötige). Das Problem ist, dass dies mit Swift extrem schwer zu bewerkstelligen ist (höchstwahrscheinlich fehlen meine Fähigkeiten mit der Swift String API).

Ich habe versucht, es so zu machen, aber es scheint, dass ich keinen String aus einem Array von Unicode-Punkten erstellen kann:

var emojilessStringWithSubstitution: String {
    let emojiRanges = [0x1F601...0x1F64F, 0x2702...0x27B0]
    let emojiSet = Set(emojiRanges.flatten())
    let codePoints: [UnicodeScalar] = self.unicodeScalars.map {
        if emojiSet.contains(Int($0.value)) {
            return UnicodeScalar(32)
        }
        return $0
    }
    return String(codePoints)
}

Bin ich falsch an dieses Problem herangegangen? Ist das Ersetzen von Emojis hier die beste Lösung? Wenn ja, wie kann ich das machen?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage