删除具有自反关系的规则

时间:2013-08-08 18:39:50

标签: ios core-data rule

我有一个Xcode项目,核心数据(“项目”)中有一个实体,并建立了一个自反关系,以便每个项目可以与许多其他项目有关系。我根据文档建立了关系(两个关系,或者一个与其本身相反的关系是合法的,我正在使用后者)并且所有工作都非常有效,直到我去删除与之关系的项目另一个项目。如果我为关系选择“级联”删除规则,则不会发生崩溃,并且所有功能都按预期运行。如果我正在使用“Nullify”删除规则,我真的想要使用它,我会崩溃。

我假设即使我正在使用自反关系,但在删除项目时,核心数据正在经历并将所有关系的另一端的该项目的所有引用设置为null。或者我是否必须手动接触并执行此操作?我想我不应该这样做。

或许这是FetchedResultsController的“操作顺序”问题?

我完全没有关于这个的想法。由于Apple过去几周的问题,我无法得到他们的支持。

我还没有发布代码,因为它有很多代码,而且大多数都是模板/样板代码,无论如何我正在构建这个简单的测试示例。

1 个答案:

答案 0 :(得分:0)

更新

经过更多测试和记录后,Core Data和删除规则不是问题。删除对象后,“Nullify”的工作方式与对象可能具有的任何关系完全一致。问题在于获取的结果控制器。

在该对象的某个地方必须有一个未被释放的引用。除了创建关系之外。它与关系有关,因为如果没有关系,对象总会删除而没有问题。

启用异常断点后,它会在configureCell中中断:当它尝试在特定索引路径上访问fetchedResultsController的对象时。

NSManagedObject * object = [self.fetchedResultsController objectAtIndexPath:indexPath];

没有异常断点,我收到错误:

CoreData:错误:严重的应用程序错误。在Core Data更改处理期间捕获到异常。这通常是NSManagedObjectContextObjectsDidChangeNotification的观察者中的错误。 * - [_ PFBatchFaultingArray objectAtIndex:]:index(3)超出bounds(3)with userInfo(null)

如果我评论configureCell中的所有代码:单元格将无法正常显示,但我无法让它崩溃。一切都很完美。

叹息。