【发布时间】:2011-05-10 22:50:14
【问题描述】:
我正在开发基于文档的应用程序。
打开保存的文件时,我将 NSManagedObjectContext 加载到视图控制器。该视图控制器需要观察某种类型的所有对象的“深度”属性的变化。当视图控制器获取上下文时,它会获取所有这些对象,将自己添加为每个值的观察者,并将它们保存在一个数组中以进行跟踪。
每当 Core Data 发送 ContextDidChange 通知时,我都会在观察它们后将创建的对象添加到该数组中。对于已删除的对象,我将视图控制器作为观察者移除,并将它们从该数组中移除。
在我关闭文档并重新打开它之前,这非常有效。发生这种情况时,所有对象都将添加到此数组中。观察效果很好。然而,第二个第一个“NSManagedObjectContextObjectsDidChangeNotification”进来,我所有的 NSManagedObjects 不知何故不再在我设置的数组中。删除时,我得到一个崩溃,告诉我无法删除不是观察者的观察者。
这很奇怪。
为什么那些 NSManagedObjets 突然消失了?我根本不发布数组或做任何有趣的事情。
【问题讨论】:
标签: cocoa macos core-data nsmanagedobject