Iphone 获取超出边界的NSRangeException崩溃
我有一段代码由于错误而崩溃,Iphone 获取超出边界的NSRangeException崩溃,iphone,objective-c,cocoa-touch,crash,nsrange,Iphone,Objective C,Cocoa Touch,Crash,Nsrange,我有一段代码由于错误而崩溃,***由于未捕获的异常“NSRangeException”而终止应用程序,原因:“***-[NSArray objectAtIndex:]:索引0超出空数组的界限” 在这一行: - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { MyObject *myCode = [self.fetchedResult
***由于未捕获的异常“NSRangeException”而终止应用程序,原因:“***-[NSArray objectAtIndex:]:索引0超出空数组的界限”
在这一行:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
MyObject *myCode = [self.fetchedResultsController objectAtIndexPath:indexPath];
}
我看不出这里有什么问题,它是从提取中提取数据。答案在您的帖子
“原因:”。。。索引0超出空数组“
的界限。您的self.fetchedResultsController
现在为空,您需要调查原因
注意:无论何时修改表视图的基础数据,都需要通过调用
-[UITableView reloadData]来更新更改
或开始更新
和结束更新
方法,然后添加或删除正确的索引路径。当我在已经搜索后单击UISearchBar中的x(清除)图标时,会发生崩溃。搜索工作正常,当我按x键清除时崩溃。好,这就是开始。清除它时,可能需要重新加载包含结果的tableView,这样,表将为空,用户无法选择超出数据边界的行。单击UISearchBar中的文本,然后单击x,效果良好。它只有在我点击X时才会崩溃,而不是文本本身。谢谢,我在这个问题中已经有了所有与搜索函数相关的代码,在我重新加载表格的过程中,我似乎没有看到任何错误。尝试实现方法-(BOOL)textField shouldclear:(UITextField*)textField
,然后尝试清除数据,重新加载表,然后返回YES。如果尝试访问空数组的第一个元素,您不认为有什么问题吗?