【发布时间】:2016-07-23 04:53:03
【问题描述】:
我的 iOS 应用从第三方数据库下载记录,并使用 CoreData 将它们存储在本地。用户可以编辑存储记录的某些方面,例如除了来自数据库的注释之外,还可以添加用户注释。
有时,数据库会更新,我提供了刷新功能。我没有检查条目的哪些部分不同,而是暴力删除旧条目并用新条目替换。
但是,这也会删除用户注释。我尝试在刷新之前保存它们,并在插入新条目后重新添加它们,但是一旦原始条目被删除,由于“级联”删除规则,用户注释也会被删除。如果我将笔记的删除规则设置为“无操作”,则不会删除所有笔记。
所以我在想,是否可以在更新时临时更改用户注释的删除规则,使其不会被旧条目删除?
或者也许我的方法完全错误,还有更好的方法来处理这个问题?
更新:我在这里创建了一个后续问题:Change relationship of NSManagedObject to different context
【问题讨论】:
-
那么为什么不更新或获取要删除的项目并只删除它们呢?
-
我仍在考虑正确的方法。我仍然不明白的是,当我将用户注释的关系从旧条目更改为新条目,然后删除旧条目时,用户注释也消失了。当我输入这个(并且远离我的 Mac)时大声思考,我可能需要在更改关系后保存上下文,然后删除旧条目,然后再次保存。