以下步骤将导致NSFetchedResultsController中的崩溃。
< code >H19这里的代码与用于核心数据的苹果示例代码完全类似。只有当我尝试添加第一个元素时,我拥有的唯一额外代码是对添加表后的dismissed.
中的错误节计数有关。
这将导致如下所示的崩溃。如果删除对reloadData的冗余调用,则无法看到崩溃。如果我向菜谱示例代码数据添加一个reloadData调用,那么崩溃也会发生。
这是已知的NSFetchedResultsController问题吗?
09-09-13 18:22:45.600累西比斯14926:20b *终止应用程序由于非正常异常'NSRangeException',原因:'* -NSCFArray objectAtIndex::index (0)越界(0)‘
发布于 2009-09-13 17:49:18
正如您自己发现的,您不应该使用tableView reloadData,因为您可能正在使用NSFetchedResultsController委托方法。
– controllerWillChangeContent:
– controller:didChangeObject:atIndexPath:forChangeType:newIndexPath:
– controller:didChangeSection:atIndex:forChangeType:
– controllerDidChangeContent:这些方法实际上负责在添加、删除或修改对象时更新表视图。因此,当您添加对tableView reloadData的调用时,会发生两个不同的线程都在访问/修改您的表视图。这将导致您正在经历的崩溃。
如果您没有使用委托方法,那么崩溃是由于代码中的其他原因造成的。
https://stackoverflow.com/questions/1417721
复制相似问题