插入后CoreData关系未更新

时间:2010-11-29 21:11:28

标签: iphone core-data

我的模型中的2个实体之间有1对多的关系。我获取位于'1'侧的entity1并访问关系集。当我发现集合中当前没有项目时,我从我的服务请求信息,创建/插入实体,设置属性,将关系设置回entity1,并保存ManagedObjectContext。

然后我重新加载一个TableView,它立即访问entity1上设置的关系并检查计数以查看是否有任何关系要显示。无论我做什么,即使我调用refreshObject,关系集的计数也始终为0。 如果我重新启动我的应用程序,计数是正确的,我可以看到与entity1的关系已正确设置。

知道我在这里做错了吗?我在我的数据模型中与其他实体执行类似的代码,并没有遇到此问题。有点奇怪的是不同步。

谢谢!

2 个答案:

答案 0 :(得分:0)

您确定在设置关系时引用了同一个entity1对象吗?您可以通过在表控制器中获取URI表示并在执行导入时打印其URI表示来进行检查。

这也可能是因为使用单独的MOC实例进行第一次获取和导入(尽管这是正确的方法)。如果您提供有关导入例程的更多详细信息,可能会有所帮助。

<强>更新

(在下面的评论中回答)。需要在两个方向上建立双向关系。例如:

// set citation's owner
[citation setOwner:owner]; // or: citation.owner = owner;
// add citation to owner's citations
[owner addCitationsObject:citation];

答案 1 :(得分:0)

是否在同一个MOC中的关系中插入和设置了新对象?