代码之家  ›  专栏  ›  技术社区  ›  Abdul Yasin

核心数据:非法尝试在不同上下文中的对象之间建立“statusmedia”关系

  •  0
  • Abdul Yasin  · 技术社区  · 7 年前

    我正在应用程序中使用核心数据。在轻量级迁移和代码升级到swift 4.0之后,我面临的问题很少。

    问题1

    从上下文中删除托管对象0x7fd0881de320(0x7fd0884589b0)后,对其进行变异。

    问题2

    由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因是:“非法尝试在不同上下文中的对象之间建立“statusmedia”关系(源=(实体:状态;id:0x10f6dc280

    解雇问题非常严重。

    请注意,我只使用了一个上下文(默认为一个,非私有)

    如果你想从我这里得到更多信息,请告诉我。。。

    任何帮助都将不胜感激。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Matic Oblak    7 年前

    不幸的是,许多人可能会导致这种情况,但需要检查的首要候选人将是:

    1. 在您的模型中,有关于关系的删除规则。删除此对象时,“级联”选项应删除相关对象。如果这不是预期的,那么很容易产生这样的错误。
    2. 您正在删除一个对象,但仍在使用它。这是一个逻辑错误,但可以通过标记已删除的托管对象(将已删除对象的ID放入某个数组)然后检查是否标记了故障对象(其ID存在于该数组中)来轻松确认。
    3. 您正在使用多个上下文,但没有意识到这一点。一些工具,比如fetch result controller,是潜在的候选工具。

    还有其他的可能性,但我会从上面提到的这些开始。