我在substringWithRange:下面的方法中得到了Exception。
我正在禁用编辑的textview。
我仅使用文本字段进行文本选择。 当我为第一次选择文本时也不例外,但是当我第二次按下它时,它就已经完成了。
例外: 'NSRangeException',原因:' * - [NSCFString substringWithRange:]:范围或索引越界'。
- (void)textViewDidChangeSelection:(UITextView *)textView {
NSRange range = [tv selectedRange];
str = [tv.text substringWithRange:range];
}
答案 0 :(得分:2)
我检查了你的例子。有时您会检索未定义的范围,如(2147483647,0)。所以,检查它以避免崩溃:
- (void)textViewDidChangeSelection:(UITextView *)textView {
NSRange range = [textView selectedRange];
if(range.length == 0 || range.location > textView.text.length)
return;
NSString *str = [textView.text substringWithRange:range];
}