XCode - 删除核心数据中的相关对象

Posted

技术标签:

【中文标题】XCode - 删除核心数据中的相关对象【英文标题】:XCode - Deleting related objects in core data 【发布时间】:2013-10-11 04:23:57 【问题描述】:

我有两个实体。一个是司机,一个是汽车

一个司机可以有很多辆车,一辆汽车只能有一个司机。

这是一种反比关系,双方都是可选的。

当我删除一个驱动程序时,这辆车是“孤儿”它仍然存在,但不再有任何相关的驱动程序。

我希望汽车在司机不存在时被销毁。这可能没有逻辑意义,但这是一个学习练习。

我取消选中汽车实体内关系的可选复选框。我认为这意味着汽车必须有司机才能存在。

当我删除我的驱动程序对象时,它无法保存上下文。我收到此错误。

“操作无法完成。(Cocoa 错误 1570。)” UserInfo=0xc586430 NSValidationErrorObject= (entity: Cars; id: 0xc580d30 ; data: 司机=无; 使 = A; 模型 = B; 年 = 222; )

为什么当这两种关系都是可选的时这会起作用..但是一旦我改变了关系,它就不再起作用了?

【问题讨论】:

【参考方案1】:

为什么不在删除时设置您的驱动程序 -> 与 Cascade 的汽车关系?您的操作失败的原因与您尝试创建没有汽车的驱动程序对象时发生的情况相同(如果关系是强制性的),验证失败。

【讨论】:

刚刚想通了。我会接受你的回答,因为我喜欢你【参考方案2】:

好的.. 它与可选或非可选无关。我这样做是为了让汽车必须有司机。然后我删除了司机,但这违反了规则,因为这辆车没有司机。

删除规则必须设置为级联,以便删除相关汽车。

【讨论】:

以上是关于XCode - 删除核心数据中的相关对象的主要内容,如果未能解决你的问题,请参考以下文章

使用 Swift 3 删除核心数据托管对象

删除核心数据对象和表格单元

我从项目中删除了一些核心数据生成文件,但 Xcode 仍然尝试编译它们

核心数据:如何删除不在新数据中的对象

在核心数据中删除数据库中的对象的策略。 [RestKit/核心数据]

从 iphone 的核心数据中删除对象时应用程序崩溃