У меня есть функция, которая находит текущее слово, которое пользователь выбрал в UITextView. Однако, если я вызываю эту функцию, когда emoji находится в свойстве UITextView.text, я вижу крах. Я считаю, что это связано с разными значениями символов в String vs NSString.«Can not Increment endIndex» из-за emoji
Как правильно преобразовать это?
func currentWord() -> String {
let cursorPosition = selectedRange.location
let separationCharacters = NSCharacterSet(charactersInString: " ")
// crash occurs here
let beginRange = Range(text.startIndex.advancedBy(0) ..< text.startIndex.advancedBy(cursorPosition))
let endRange = Range(text.startIndex.advancedBy(cursorPosition) ..< text.startIndex.advancedBy(text.characters.count))
let beginPhrase = text.substringWithRange(beginRange)
let endPhrase = text.substringWithRange(endRange)
let beginWords = beginPhrase.componentsSeparatedByCharactersInSet(separationCharacters)
let endWords = endPhrase.componentsSeparatedByCharactersInSet(separationCharacters)
return beginWords.last! + endWords.first!
}
Я пробовал это, но теперь он говорит, что диапазон выходит за пределы, когда я называю метод substringWithRange. Есть предположения? – cb428
Nevermind, Моя ошибка заключалась в том, что NSMakeRange должен быть (начало, конец - начало). У меня было (начало, конец). – cb428