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

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

有时候,数据库得到更新,我提供了一个刷新function。 而不是检查条目的哪些部分是不同的,我只是蛮力删除旧的,并用一个新的replace。

但是,这也会删除用户注释。 我尝试在刷新之前保存它们,并在插入新条目后重新添加它们,但是一旦原始条目被删除,由于“级联”删除规则,用户注释也被删除。 如果我将删除规则设置为“无操作”,则所有的笔记都不会被删除。

所以我在想,是不是可以在更新的时候临时更改用户备注的删除规则,这样就不会被旧的条目删除呢?

或者,也许我的方法是完全错误的,有更好的方法来处理呢?

更新:我在这里创build了一个后续问题: NSManagedObject的关系更改为不同的上下文

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