【问题标题】:Core Data lack of third degree object results in second-degree object not savingCore Data 缺少三级对象导致二级对象不保存
【发布时间】:2013-10-23 21:18:33
【问题描述】:

我有以下数据模型:

ObjectA <->> ObjectB <->> ObjectC

换句话说,每个ObjectA 有很多ObjectB,而ObjectB 又反过来有很多ObjectC

这些关系都是用正确的逆建立的(据我所知)。

保存 managedObjectContext 会导致正确保存所有内容,但前提是数据模型“完整”(即,ObjectA 实际上有 ObjectB 实体,其中有 ObjectC 实体)。

但是,如果ObjectB 没有任何ObjectC(有时是这种情况),则ObjectB 不会被保存。

这种行为有什么明显的罪魁祸首吗?我什至不知道从哪里开始寻找。

对象的类设置如下:

ObjectB 有一个 .objectA 属性

ObjectC 有一个 .objectB 属性

两个属性名称都与关系同名。

我也尝试添加 NSSet 属性(与逆关系同名),但行为没有区别。

【问题讨论】:

  • 可以发实体图吗
  • 我不明白为什么会发生这种情况。保存上下文会保存上下文中创建(或修改)的所有对象,无论它们是否具有关系。

标签: ios objective-c xcode core-data


【解决方案1】:

感谢 cmets - 现在已解决。这是由于 Core Data 外部的错误。在更新或插入新对象之前,我检查了一个 ID 列。事实证明,此列中的 ID:s(由外部服务提供)不是唯一的。这导致对象被重新分配给其他父对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    • 2010-11-11
    • 1970-01-01
    • 1970-01-01
    • 2012-03-11
    相关资源
    最近更新 更多