【问题标题】:Core Data: Illegal attempt to establish a relationship 'statusmedia' between objects in different contexts核心数据:非法尝试在不同上下文中的对象之间建立关系“状态媒体”
【发布时间】:2023-03-16 22:40:01
【问题描述】:

我在我的应用程序上使用 Core Data。在轻量级迁移和代码升级到 swift 4.0 之后,我面临一些问题。

问题 1

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

问题 2

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

终止问题非常严重。

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

如果您想了解我的更多信息,请告诉我...

任何帮助将不胜感激。

【问题讨论】:

    标签: ios swift core-data


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢@Matic Oblak,我正在尝试上述步骤,如果这解决了我的问题,我会通知您。
    猜你喜欢
    • 2011-08-31
    • 1970-01-01
    • 1970-01-01
    • 2010-12-05
    • 1970-01-01
    • 2012-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多