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

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

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

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

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

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

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

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

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

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

【问题讨论】:

    标签: ios xcode core-data entity


    【解决方案1】:

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

    【讨论】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-17
      • 2016-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-27
      相关资源
      最近更新 更多