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