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

时间:2013-10-11 04:23:57

标签: ios xcode core-data entity

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

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

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

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

我希望汽车在其驱动程序不再存在时被销毁。这可能没有逻辑意义,但这是一个学习练习。

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

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

“操作无法完成。(Cocoa error 1570.)”UserInfo = 0xc586430 {NSValidationErrorObject =(entity:Cars; id:0xc580d30; data:{     driver = nil;     make = A;     model = B;     年= 222; })

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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