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:删除核心数据中具有一对多关系的实体的主要内容,如果未能解决你的问题,请参考以下文章

使用核心数据,当一对多关系低于最小计数时,是一种自动删除实体的方法吗?

核心数据 - 具有一对多关系的实体正在检索除“关系”实体之外的所有实体对象的属性

获取核心数据中一对多关系的计数

快速获取具有一对多关系的核心数据

删除具有一对多关系的实体

iphone核心数据:无法删除具有一对多关系的数据