2012-04-11 80 views
3

我收到substringWithRange的異常:範圍在下面的方法。獲取異常'NSRangeException'

我正在禁用編輯的textview。

我正在使用textfield僅用於文本選擇。 當我選擇第一次的文本沒有例外,但當我第二次按它通過。

例外: 'NSRangeException',原因: '* - [NSCFString substringWithRange:]:範圍或索引超出範圍'。

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

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

回答

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]; 
} 
+0

謝謝.........現在它工作......沒有例外...更多... – iosDev 2012-04-11 12:50:26

相關問題