Avatar ·

Wie man NSRange in Range<String.Index> in Swift für die Arbeit mit NSString umwandelt

Hallo zusammen! Ich habe gerade angefangen, Swift zu lernen, und bin auf ein Problem bei der Arbeit mit Text gestoßen. Ich habe einen NSString und erhalte einen Bereich (NSRange) nach der Suche nach einer Teilzeichenkette mit der Methode range(of:). Aber wenn ich versuche, diesen Bereich zu verwenden, um eine Teilzeichenkette aus einem Swift String zu extrahieren, gibt der Compiler einen Fehler aus. Hier ist mein Code: ```swift let nsString: NSString = "Привет, мир! Hello, world!" let searchRange = nsString.range(of: "мир") // searchRange hat den Typ NSRange let swiftString: String = nsString as String // Versuche, eine Teilzeichenkette zu erhalten let substring = swiftString[searchRange] // Fehler! ``` Der Fehler besagt, dass `NSRange` nicht als Index für `String` verwendet werden kann. Ich habe gelesen, dass Strings in Swift über `String.Index` indiziert werden, nicht über ganze Zahlen oder `NSRange`. Wie kann ich `NSRange` korrekt in `Range` umwandeln, um mit Swift String zu arbeiten? Muss ich Multibyte-Zeichen (z.B. Emojis oder Kyrillisch) berücksichtigen? Ich wäre dankbar für Codebeispiele!