0

我想制作我的 Core Data 数据库的备份副本,而不使用文件管理器来制作 sqlite 文件的副本,或者使用 Persistent Store Coordinator 的 migratePersistentStore 方法(原因太长,无法在此处解释)。我想要做的是用与原始文件相同的 MOMD 打开一个新的持久存储,创建一个新的托管对象上下文,然后遍历我的数据库中的所有对象并将它们插入到新的上下文中。

这适用于简单实体,但问题是我的模型有大约 20 个实体,其中许多实体具有一对多和多对多的关系。稍微复杂一点的解决方案是将每个对象插入到新的 MOC 中,然后将所有新的托管对象保存在内存中,并使用它们在后续传递中绑定对象之间的所有关系。但这似乎是一个非常混乱的解决方案。

是否有一种干净、优雅的方式来实现这一点,它可能适用于任何类型的数据模型,而不仅仅是我自己的模型的定制解决方案,而且不必同时将每个对象都保存在内存中?

谢谢。

4

1 回答 1

0

复制持久性存储远远超过最简单的方法——我建议重新审视你反对它的理由或解释它们是什么。

将对象从一个上下文复制到另一个上下文(从一个磁盘持久存储到另一个)并不一定同时将它们全部保存在内存中。Core Data 可以把它们变成故障。

于 2012-12-05T19:25:48.950 回答