iOS:删除核心数据中具有一对多关系的实体
Posted
技术标签:
【中文标题】iOS:删除核心数据中具有一对多关系的实体【英文标题】:iOS: delete entity with one to many relationship in core data 【发布时间】:2014-04-02 09:32:43 【问题描述】:在我的应用程序中,我有两个实体:
所以,我有两个问题:
1- 当我删除“第一个”实体时,我想删除属于第一个的所有实体“特征”。我是否设置删除规则“级联”?
2- 如果我从图中删除“特征”对象,使用方法
- (void)removeCharacteristicsObject:(Characteristics *)value;
我也想删除特征标识,不只是从图中,有什么办法呢?
谢谢
【问题讨论】:
作为旁注。我会将您的Characteristics
实体重命名为 Characteristic
(不带 s)。这将使与他们的合作变得更加容易。关系是复数,所以 rel 名称很好。只需更改实体名称即可。
是的,我知道,我创建了一个快速示例来创建一个清晰的情况,在我真正的项目中,我使用单个名称
好的,很酷,只是想我会提到它:D
【参考方案1】:
正确。将figure -> characteristic
的删除规则设置为级联。这将在您删除图形时删除与图形关联的所有特征。
您甚至不需要删除该特征。只需删除该特征,它就会将其从图中删除。您可以删除它然后删除它,但更容易删除它。将characteristic -> figure
的删除规则设置为 Nullify。
【讨论】:
第二点:然后当我删除一个特征表单图形时,将“特征->数字”设置为“无效”,特征实体也会被删除? 不,删除规则反其道而行之。无效规则说“如果对象被删除,则与它相关的对象的反向指针将无效”。 (查找 NSDeleteRule)。这意味着,如果您删除该特征,则图形实体中指向该特征的指针将无效。如果您从图中删除该特征,则不会发生任何事情。您将保留仍在数据库中的特征。 嗯好的,所以最好直接删除特征实体,这样实体就被删除了。并且这样在图中就不会出现相关的特征;对吗?以上是关于iOS:删除核心数据中具有一对多关系的实体的主要内容,如果未能解决你的问题,请参考以下文章
使用核心数据,当一对多关系低于最小计数时,是一种自动删除实体的方法吗?