强制加载核心数据管理对象?

时间:2012-01-30 18:18:46

标签: objective-c ios core-data nsmanagedobject

我遇到了Core Data的问题,我试图从与第一个对象的关系中加载第二个托管对象。但在某些情况下,第二个托管对象是“错误”,程序崩溃而不是加载与第二个托管对象关联的信息。那么有没有办法强制托管对象在访问时加载到内存中?或者它是否必须等到我尝试直接访问第二个托管对象中的属性才将其数据加载到内存中?

2 个答案:

答案 0 :(得分:0)

理论上,CoreData通常根据各种条件自动处理被管理对象的故障和数量。

根据您所描述的内容,您不需要显式执行任何相关托管对象加载的操作。当您访问相关对象时,该被管理对象应该以与您自己直接访问它相同的方式加载。

所以我的猜测是问题不在于错误(虽然对象可能确实显示错误状态),而是完全不同的东西。在这一点上,潜在的问题可能是广泛的,以具体解决,但我可能会看看你的反向关系,并确保这些正确构建...

答案 1 :(得分:0)

如果您尝试访问已在其他上下文中删除的故障,则会崩溃。然后CoreData将无法获取该错误的数据。

你可能也在访问一个从未被保存的对象(不太可能)。

如果情况并非如此,那么您可能会遇到一些线程问题。您看到的确切错误/异常是什么?