我有以下数据模型,我想打破EntityA和EntityB之间的多对多关系。我这样做是通过删除连接它们的EntityC对象来实现的。我发现EntityA仍然与EntityB有关系,虽然我保存了托管对象上下文,但我可以看到在从数据库重新获取EntityA记录后这些更改会生效。 有什么我想念的吗?提前谢谢,莎拉
答案 0 :(得分:2)
我同意Barry的评论,从您的描述中看起来您使用了多个NSManagedObjectContext
,这肯定会导致问题。
这是一个多线程应用程序吗?
你是基于Apple的一个例子吗?
参考完整性是导致此问题的主要原因。删除A时,从C的角度来看,与C的关系可能无法立即清除,因为Core Data会在运行循环结束时或下次保存时进行清理。这意味着如果您在其中任何一个发生之前偷看该值,那么关系可能就在那里。你是立即看待这种关系还是迟到了一段时间,即在保存之后?
在您的原始问题中,您声明保存后EntityA仍然与EntityB有关系。这是拼写错误吗?根据您的模型EntityA和EntityB没有直接关系。你能说清楚吗?
或者可能会显示您删除EntityC的代码,以及您看到EntityA与EntityB有关系的位置。