HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – “无法递增endIndex” – 由于UITextView中的表情符号字符而出错大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_675_0@
@H_675_0@
我有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)
    }
}

错误如下:

这是我尝试输入UITextView:

ios – “无法递增endIndex” – 由于UITextView中的表情符号字符而出错

UITextView的键盘类型设置为“认”.

出现错误时:

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"

我该如何解决这个问题?

解决方法

正如@marTin R所说,我们需要对NSRange和NSString进行操作,因此解决方案如下:

private func separatedWordsInFrontcursor(infront: Bool = truE) -> [String] {

    let cursorPosition = SELEctedRange.LOCATIOn
    let separationCharacters = NSCharacterSet(charactersinstring: " ")

    let nstext = NSString(String: text)

    let beginRange = NSRange(LOCATIOn: 0,length: cursorPosition)
    let EndRange = NSRange(LOCATIOn: cursorPosition,length: nstext.length - cursorPosition)

    let beginPhrase = nstext.subStringWithRange(beginRangE)
    let endPhrase = nstext.subStringWithRange(EndRange)

    return infront ? beginPhrase.componentsSeparatedByCharactersInSet(separationCharacters) : endPhrase.componentsSeparatedByCharactersInSet(separationCharacters)
}
@H_675_0@

大佬总结

以上是大佬教程为你收集整理的ios – “无法递增endIndex” – 由于UITextView中的表情符号字符而出错全部内容,希望文章能够帮你解决ios – “无法递增endIndex” – 由于UITextView中的表情符号字符而出错所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:endindexiosuitextview出错字符无法由于符号表情递增
猜你在找的HTML5相关文章
其他相关热搜词更多
phpJavaPython程序员load如何string使用参数jquery开发安装listlinuxiosandroid工具javascriptcap