Avatar ·

Comment convertir NSRange en Range<String.Index> en Swift pour travailler avec NSString ?

Bonjour à tous ! Je viens de commencer à apprendre Swift et j'ai rencontré un problème en travaillant avec du texte. J'ai un NSString, et j'obtiens une plage (NSRange) après avoir recherché une sous-chaîne avec la méthode range(of:). Mais quand j'essaie d'utiliser cette plage pour extraire une sous-chaîne d'une Swift String, le compilateur génère une erreur. \n\nVoici mon code :\n```swift\nlet nsString: NSString = "Привет, мир! Hello, world!"\nlet searchRange = nsString.range(of: "мир")\n// searchRange a le type NSRange\nlet swiftString: String = nsString as String\n// J'essaie d'obtenir la sous-chaîne\nlet substring = swiftString[searchRange] // Erreur !\n```\n\nL'erreur indique que `NSRange` ne peut pas être utilisé comme index pour `String`. J'ai lu qu'en Swift, les chaînes sont indexées via `String.Index`, et non via des entiers ou `NSRange`. Comment puis-je