我将 ECSlidingViewController 用于 Path & FB 样式的 UI。两个 UITableView,一个(细节)显示为主视图,第二个(主视图)显示为侧菜单。两者均由 Core Data 提供支持。
在侧面菜单 UITableView 中删除父表行时,我遇到了严重的崩溃,但只有当详细信息页面在删除时显示父行的子行时。所有其他行都按预期删除。
删除行由以下方式处理:
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
[self.managedObjectContext deleteObject:[self.fetchedResultsController objectAtIndexPath:indexPath]];
}
}
我在日志中收到以下错误:
CoreData:错误:严重的应用程序错误。在核心数据更改处理期间捕获到异常。这通常是 NSManagedObjectContextObjectsDidChangeNotification 观察者中的一个错误。无效更新:第 0 节中的行数无效。更新后现有节中包含的行数 (0) 必须等于更新前该节中包含的行数 (3),加上或减去数字从该部分插入或删除的行数(0 插入,1 删除)加上或减去移入或移出该部分的行数(0 移入,0 移出)。与用户信息(空)
delete rule
如果有帮助,设置为 Nullify ?
我猜核心数据是从 NSFetchedResultsController 中一次性删除所有的孩子,然后 UITableVIew 变得很困惑?
如何在不崩溃的情况下删除父子 NSManagedObjects?