核心数据:以编程方式更改删除规则

时间:2016-04-03 18:16:52

标签: ios core-data

我的iOS应用程序从第三方数据库下载记录,并使用CoreData在本地存储它们。用户能够编辑存储记录的某些方面,例如,除了来自数据库的注释之外,还可以添加用户注释。

有时,数据库会更新,我会提供刷新功能。我没有检查条目的哪些部分是不同的,而是强行删除旧条目并用新的条目替换它。

但是,这也会删除用户注释。我尝试在刷新之前保存它们,并在插入新条目后重新添加它们,但是一旦原始条目被删除,用户注释也会被删除,因为" Cascade"删除规则。如果我将删除规则设置为" No Action"对于笔记,则不会删除所有笔记。

所以我在想,是否可以在更新时暂时更改用户注释的删除规则,以便不会使用旧条目删除它?

或许我的方法完全错了,有更好的方法可以解决这个问题吗?

更新:我在此处创建了一个跟进问题:Change relationship of NSManagedObject to different context

1 个答案:

答案 0 :(得分:0)

除了版本控制之外,不允许在实例化后更改模型。 我认为,你应该创建一个新的实体,比如CustomNote,并将一些唯一的标识符存储到原始的“记录”中。然后只需通过id检索此笔记。 虽然,它可能是一些更先进的关系方法,但这是最简单的。