2011-11-01 127 views
0
的一切,我要去告訴你,我得到的錯誤,那麼我會試着解釋我在做什麼來得到這個錯誤等

NSRangeException導致應用程序崩潰的電話,但不是在模擬器上

2011-11-02 10:17:57.665 code[1327:707] *** Terminating app due to uncaught exception 'NSRangeException', reason: '-[UITableView scrollToRowAtIndexPath:atScrollPosition:animated:]: section (0) beyond bounds (0).' 
*** First throw call stack: 
(0x31fe88bf 0x31d581e5 0x31fe87b9 0x31fe87db 0x32b6df1f 0x29c9b 0x32ae26b5 0x32b3daf1 0x32afed21 0x32afea71 0x32afe78b 0x32afe4ff 0x32ab581b 0x32abafb9 0x3193aba7 0x3273be8d 0x31fbb2dd 0x31f3e4dd 0x31f3e3a5 0x3204afed 0x32ace743 0x35a1 0x301c) 
terminate called throwing an exception(gdb) 

第一

這是我正在做的,以獲得此錯誤。 enter image description here

任何時候,我第二次用indexpath [0,1]的數據集進入子視圖時,應用程序將拋出此錯誤。

這是發生錯誤的代碼。 subview.m

- (void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 
    //Center previously selected cell to center of the screen 
    [self.tableView reloadData]; 
    [self.tableView scrollToRowAtIndexPath:oldCheckedIndexPath atScrollPosition:UITableViewScrollPositionMiddle animated:NO]; //happens on this line 
} 

並且這是來自該錯誤的輸出。 enter image description here

我應該看什麼..我真的不知道什麼是好的或壞的。 真是令人沮喪的是,如果我從主視圖或其他任何其他視圖進出IndexPath [0,0],它可以正常工作,並且此應用永遠不會有問題。有人可以幫助我,或者至少讓我知道問題可能是什麼或在哪裏。

+0

myDataArray is nil is this right? –

+0

我會檢查現在 –

+0

你的例外是告訴你,表認爲它有零部分。 –

回答

0

我曾在我的項目有類似的問題,我是從我的數據源中刪除的對象,然後立即調用[self.tableview reloadData];

我做了什麼來解決這個問題是呼叫:

dispatch_after(DISPATCH_TIME_NOW, dispatch_get_main_queue(), ^(void){ 
       [self.tableView reloadData]; 
      }); 

這基本上要求reloadData在下一次運行循環中。你可以使用做類似的事情。

所以我的建議是嘗試調用:

dispatch_after(DISPATCH_TIME_NOW, dispatch_get_main_queue(), ^(void){ 
    [self.tableView scrollToRowAtIndexPath:oldCheckedIndexPath atScrollPosition:UITableViewScrollPositionMiddle animated:NO]; 
} 

注意:你並不需要真正有規定,這兩種技術強制法在下次的啓動被稱爲延遲時間運行循環。

相關問題