从表视图外部的NSFetchedResultsController控制的UITableView中删除时出错

从表视图外部的NSFetchedResultsController控制的UITableView中删除时出错,uitableview,nsfetchedresultscontroller,Uitableview,Nsfetchedresultscontroller,我试图在UITableView中删除由NSFetchedResultsController管理的对象,并试图通过“添加/删除”按钮从单独的视图中删除该对象。然而,当我在视图之间切换时,似乎控制器和表都出了问题,我无法找出原因。下面是我遇到的错误-不幸的是,它并不总是发生,这取决于我通过应用程序的路径: 严重的应用程序错误。在核心数据更改处理过程中捕获异常:**-[NSCFArray removeObjectAtIndex::]:索引(6)超出用户信息(null)的界限(6) 我可以看到我的委托方

我试图在UITableView中删除由NSFetchedResultsController管理的对象,并试图通过“添加/删除”按钮从单独的视图中删除该对象。然而,当我在视图之间切换时,似乎控制器和表都出了问题,我无法找出原因。下面是我遇到的错误-不幸的是,它并不总是发生,这取决于我通过应用程序的路径:

严重的应用程序错误。在核心数据更改处理过程中捕获异常:**-[NSCFArray removeObjectAtIndex::]:索引(6)超出用户信息(null)的界限(6)

我可以看到我的委托方法被正确调用,删除代码非常简单,我没有看到任何错误


任何想法/调试提示都将不胜感激。

我遇到了类似的问题。到目前为止,我找到的唯一解决方案是重新获取NSFetchedResultsController:

if (![[self resultsController] performFetch:&error]) {
   NSLog(@"%@:%s Error refreshing the fetch controller %@", [self class], _cmd, 
      [error localizedDescription]);
   NSAssert(NO, @"Failed to refresh the fetch controller");
}

我不确定我们是否有相同的问题,但我的问题通过以下方式得到解决:

(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return self.fetchedResultsController.sections.count;}

(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
id <NSFetchedResultsSectionInfo> sectionInfo = [self.fetchedResultsController sections][section];
return [sectionInfo numberOfObjects];}
(NSInteger)节数表视图:(UITableView*)表视图{
返回self.fetchedResultsController.sections.count;}
(NSInteger)表视图:(UITableView*)表视图行数节:(NSInteger)节{
id sectionInfo=[self.fetchedResultsController sections][section];
返回[sectionInfo numberOfObjects];}