表情符的我有延長UITextView
:「不能增加endIndex的」 - 錯誤的原因的UITextView
extension UITextView {
func separatedWordsInFrontCursor(infront: Bool = true) -> [String] {
let cursorPosition = selectedRange.location
let separationCharacters = NSCharacterSet(charactersInString: " ")
let beginRange = Range(start: text.startIndex.advancedBy(0), end: text.startIndex.advancedBy(cursorPosition))
//fatal error: can not increment endIndex
let endRange = Range(start: text.startIndex.advancedBy(cursorPosition), end: text.startIndex.advancedBy(text.characters.count))
let beginPhrase = text.substringWithRange(beginRange)
let endPhrase = text.substringWithRange(endRange)
return infront ? beginPhrase.componentsSeparatedByCharactersInSet(separationCharacters) : endPhrase.componentsSeparatedByCharactersInSet(separationCharacters)
}
}
錯誤是如下:
fatal error: can not increment endIndex
UITextView
的鍵盤類型設置爲Default
。
當錯誤出現:
cursorPosition is 3
text.characters.count is 2
text.startIndex is 0
text.startIndex.advancedBy(2) is 3
text.startIndex.advancedBy(cursorPosition) is "fatal error: can not increment endIndex"
我怎樣才能解決這個?
的問題是,字符串範圍和NSString的範圍是不同的,「不相容」。看看http://stackoverflow.com/questions/25138339/nsrange-to-rangestring-index及其各種解決方案。另一個類似的問題是這樣的:http://stackoverflow.com/questions/27040924/nsrange-from-swift-range。 –
試試這個:let endRange = Range(start:text.startIndex.advancedBy(cursorPosition),end:text.endIndex) – Lumialxk
@Lumialxk致命錯誤屬於'beginRange'行。 –