【问题标题】:Deleting won't nullify until save : is it true?在保存之前删除不会失效:是真的吗?
【发布时间】:2013-06-17 22:46:15
【问题描述】:

我的情况:我在Core Data 中有复杂的(24 个实体、许多关系和许多有序对多关系)模型。

现在假设,我有一个实体PlayList 和一个实体Song,并且在PlayList 中与Song 有一个有序的多对多关系。这种关系是相反的,两者都有一个nullify delete-rule。

我已经注意到,当我删除属于PlayListSong(我们称之为gangnam)时,这首歌并没有从关系中删除!!我尝试使用以下方法解决此问题:

  • 我修复了 Apple 的与对多有序关系相关的错误,使用了优秀的:KCOrderedAccessorFix。顺便说一句,如果您使用其他解决方案,请小心,因为该错误不仅适用于addAnObject 部分,还适用于removeAnObject 部分。 结果:好多了,但还是不行:我的关系仍然是gangnam :(
  • 我试过了:processPendingChanges不工作

现在,

  • 如果我 save 我的上下文,Song gangnam 将被删除。

所以,我的问题是:

如果我想nullify 关系,我必须save 我的上下文吗? 还是我错过了什么?

我试图用较小的模型重现“错误”,但在这种情况下,调用processPendingChanges 就足以建立nullify 的关系。所以,如果有人遇到同样的问题/情况,我很高兴知道我不是唯一一个与Core Data打架的人;)

【问题讨论】:

  • 由于某种原因,实体的图形不连贯(我猜CoreData 的一些错误,关系及其逆关系没有正确维护)。因此,它拒绝删除该对象。如果我保存,它首先使图形连贯,然后可以删除对象。

标签: macos cocoa cocoa-touch core-data


【解决方案1】:

由于某种原因,实体图不连贯(我猜是CoreData 的一些错误,关系及其逆关系没有得到正确维护)。因此,它拒绝删除该对象。如果我保存,它首先使图形连贯,然后可以删除对象。

【讨论】:

    猜你喜欢
    • 2012-03-04
    • 1970-01-01
    • 1970-01-01
    • 2012-03-31
    • 1970-01-01
    • 2016-08-23
    • 2011-08-13
    • 1970-01-01
    • 2014-06-08
    相关资源
    最近更新 更多