2011-09-07 98 views
-1

我有這樣的代碼是與錯誤*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSArray objectAtIndex:]: index 0 beyond bounds for empty array'獲取NSRangeException超越界限崩潰

在這一行崩潰:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    MyObject *myCode = [self.fetchedResultsController objectAtIndexPath:indexPath]; 
} 

我看不出什麼錯在這裏,它是從一個獲取拉低數據。

+4

如果您嘗試訪問空數組的第一個元素,您不覺得有什麼問題嗎? –

回答

4

答案就在您的帖子'reason: ' ... index 0 beyond bounds for empty array'。你需要調查原因,你的self.fetchedResultsController是空的。

注意:當你修改基礎數據,你需要通過調用-[UITableView reloadData];beginUpdatesendUpdates方法,然後添加或刪除正確的索引路徑更新變化表視圖。

+0

當我在搜索完成後單擊UISearchBar中的x(清除)圖標時發生崩潰。搜索工作正常,當我按下x清除時就會崩潰。 – Jon

+0

好吧,這是一個開始。當你清除它時,你可能需要重新載入包含結果的tableView,你可以點擊這個表格,這個表格將是空的,並且用戶不能選擇一個超出數據範圍的行。 – Joe

+0

當我單擊UISearchBar中的文本時,然後單擊x,它工作正常。當我點擊X而不是文本本身時,它只會崩潰。 – Jon

相關問題