NSManagedObject和isDeleted

时间:2011-01-20 14:45:32

标签: objective-c core-data

我有一个多上下文核心数据应用程序,它大量使用观察者来保持UI状态。由于删除了观察对象,我遇到了一系列删除问题。我很想用'if([mo isDeleted])返回来保护我的观察者;':

From NSManagedObject documentation

  

如果核心数据,该方法返回YES   会问持久性商店   在下次保存期间删除对象   操作。它可以在其他地方返回NO   次,特别是在物体之后   已被删除。与时俱进   哪个会停止返回YES   取决于对象在哪里   被删除的过程。

我的书中的设计选择太糟糕了,但我很好奇人们如何解决这个问题。显然我需要在删除之前清除观察到的属性。我认为只有“干净”的方法是观察NSManagedObjectContextWillChange事件,看看我是否存储了任何已删除的对象。看起来像一个干净的工作,但也许我错过了一些东西。

1 个答案:

答案 0 :(得分:12)

另一种可能适用于您的设计的替代方案:-[NSManagedObject managedObjectContext]如果已删除并且保存了上下文,则会返回nil。您可以在NSManagedObjectContextDidSave通知后检查此内容。