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

时间:2009-11-27 19:07:52

标签: uitableview nsfetchedresultscontroller

我正在尝试在UITableView中删除由NSFetchedResultsController管理的对象 - 我试图通过添加/删除按钮从单独的视图中执行此操作。然而,当我在视图之间切换时,似乎控制器和表格已经失控,我无法退出找出原因。这是我得到的错误 - 不幸的是,它并不总是发生,这取决于我通过应用程序采取的路径:

  

严重的应用程序错误。在Core Data更改处理期间捕获到异常:*** - [NSCFArray removeObjectAtIndex:]:index(6)超出bounds(6)with userInfo(null)

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

任何想法/调试提示都会非常感激。

2 个答案:

答案 0 :(得分:1)

我遇到了类似的问题。到目前为止我找到的唯一解决方案是重新获取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");
}

答案 1 :(得分:0)

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

(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];}