3

我在下面的方法中得到了 substringWithRange:range 的异常。

我正在禁用编辑的文本视图。

我仅将文本字段用于文本选择。当我第一次选择文本时也不例外,但是当我第二次按下它时。

异常:'NSRangeException',原因:' * -[NSCFString substringWithRange:]:范围或索引超出范围'。

- (void)textViewDidChangeSelection:(UITextView *)textView {

NSRange range = [tv selectedRange];
str = [tv.text substringWithRange:range];
}
4

1 回答 1

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];
}
于 2012-04-11T12:40:26.423 回答