Avatar ·

Cómo convertir NSRange a Range<String.Index> en Swift para trabajar con NSString

¡Hola a todos! Acabo de empezar a aprender Swift y me encontré con un problema al trabajar con texto. Tengo un NSString y obtengo un rango (NSRange) después de buscar una subcadena con el método range(of:). Pero cuando intento usar este rango para extraer una subcadena de un Swift String, el compilador da un error. Aquí está mi código: ```swift let nsString: NSString = "¡Hola, мир! Hello, world!" let searchRange = nsString.range(of: "мир") // searchRange tiene tipo NSRange let swiftString: String = nsString as String // Intento obtener la subcadena let substring = swiftString[searchRange] // ¡Error! ``` El error dice que `NSRange` no se puede usar como índice para `String`. He leído que en Swift las cadenas se indexan mediante `String.Index`, no mediante enteros o `NSRange`. ¿Cómo puedo convertir correctamente `NSRange` a `Range` para trabajar con Swift String? ¿Es necesario considerar caracteres multibyte (por ejemplo, emojis o cirílico)? ¡Agradecería ejemplos de código! Y