2011-09-07 90 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

相关问题