Получение исключения «NSRangeException»

Я получаю исключение для substringWithRange:range в методе ниже.

У меня есть textview с отключенным редактированием.

Я использую текстовое поле только для выделения текста. когда я выбираю текст в первый раз, никаких исключений, но когда я нажимаю второй раз, он проходит.

Исключение: «NSRangeException», причина: «* -[NSCFString substringWithRange:]: диапазон или индекс выходят за пределы».

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

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

person iosDev    schedule 11.04.2012    source источник


Ответы (1)


Я проверил ваш пример. Иногда вы получаете неопределенный диапазон, например (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];
}
person beryllium    schedule 11.04.2012