2011-10-24 98 views
1

似乎controllerDidChangeContent:一旦我在我的上下文中创建一个新的托管对象时被调用。该文档似乎暗示此方法仅在您保存后调用:上下文。核心数据 - NSFetchedResultsController错误

这个“错误”,如果它是一个,导致我的应用程序崩溃,因为作为我的表视图单元的一部分,我需要加载创建主要管理对象时不存在的其他管理对象。

有人似乎太已经看准了这一点,请查看下面的链接,我很想听听您对此的看法:http://openradar.appspot.com/10207615


更多信息

虽然我添加了链接到这篇文章展示了一个使用两个NSManagedObjectContext的例子,我的应用程序使用了一个上下文,但是controllerDidChangeContent:被一个对象在唯一的上下文中创建并且controllerDidChangeContent:被调用为se当我保存的时候:这个上下文。根据我的理解,只有在保存上下文时才应该发送此方法。

+1

您是否通过单步执行带有断点的代码进行检查? – Mundi

+0

是的,我一旦创建了一个托管对象的代码块被执行,controllerDidChangeContent:正在被发送消息。看看链接,它证明了这个问题。 – Daniel

回答

1

解决方案是避免处理多个managedObjectContext。如果您的单元需要加载其他管理对象,则它应该仍然使用与主要管理对象相同的管理对象上下文。

我还没有看到一个用例,它绝对不可避免地使用多个指向同一模型的同一模型的被管理对象上下文。

+0

嗨Mundi,我实际上只在应用程序中使用一个上下文,在应用程序委托中创建并通过引用传递。我相应地更新了这篇文章。 – Daniel