iphone – Coredata删除规则混乱,xcode

我有两个实体之间的核心数据关系,这是这样的:

Entity A                        Entity B
aRelationship <-------------->> bRelationship

删除规则设置为级联。

也许我有这个错误,但我认为,如果这两个关系的删除规则设置为“级联”,那么下面是什么时候…

[context deleteObject:EntityA];

…它还将删除与其相关联的所有实体B。然而,当我记录所有的实体B的,它似乎是我错了。

有人可以为我的困惑散发一些光吗?

非常感谢你。

虽然在图形数据模型编辑器中不是立即显现每个recipocal关系,即每个

<--> 

…是真正的两个独立的关系,每个都有自己的删除规则。当删除具有删除规则的实体的对象时,将激活删除规则。

所以,如果在数据模型编辑器中有两个实体Alpha和Beta有关系:

Alpha.betas<-->>Beta.alpha

…那么你真的有这样的两个关系:

Alpha.betas--(delete rule)-->>Beta.alpha
Beta.alpha--(delete rule)-->Alpha.betas

您不需要像这样设置删除规则:

Alpha.betas--(cascade)-->>Beta.alpha
Beta.alpha--(cascade)-->Alpha.betas

…因为删除任何一个Beta实例将删除关联的Alpha对象,这将触发删除所有相关的Beta对象。根据数据模型的详细信息,交互级联可能会意外删除大量数据。

你真正想要的是:

Alpha.betas--(cascade)-->>Beta.alpha
Beta.alpha--(nullify)-->Alpha.betas

现在,当您删除Alpha对象时,它将删除所有关联的Beta对象。

当级联被阻塞时,它通常是所需关系的问题。不能确定没有数据模型的细节。

http://stackoverflow.com/questions/7150943/coredata-delete-rule-confusion-xcode

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:iphone – Coredata删除规则混乱,xcode