【发布时间】:2011-06-12 12:27:56
【问题描述】:
我有一个多上下文核心数据应用程序,它大量使用观察者来保持 UI 处于状态。由于删除了观察到的对象,我遇到了一系列删除问题。我很想用'if ([mo isDeleted]) return;'来保护我的观察者:
From NSManagedObject documentation
如果 Core Data 方法返回 YES 将要求持久存储 在下次保存期间删除对象 手术。它可能会在其他地方返回 NO 次,特别是在对象之后 已被删除。即时性 它将停止返回 YES 取决于对象在 被删除的过程。
好吧,我书中的设计选择很糟糕,但我很好奇人们是如何解决这个问题的。显然,我需要在删除之前清除观察到的属性。我能想到的唯一“干净”方法是观察 NSManagedObjectContextWillChange 事件并查看我是否存储了任何已删除的对象。看起来像一个干净的工作,但也许我错过了一些东西。
【问题讨论】:
标签: objective-c core-data