代码之家  ›  专栏  ›  技术社区  ›  Alpinista

将默认记录恢复到核心数据数据库

  •  1
  • Alpinista  · 技术社区  · 15 年前

    我有一个iPhone应用程序,它有一个预先加载了默认数据的sqlLite核心数据模型。如果用户修改或删除了模型中的记录,我希望用户能够恢复此默认数据,同时保留用户添加到模型中的任何新记录。

    sqlLite数据库在第一次运行时被复制到users documents目录中,因此在app包中可以使用未被触及的原始数据库。在两个数据库之间复制记录最简单的方法是什么?我假设它涉及到设置一个额外的persistentstorecordinator,或者将原始dB作为一个额外的persistentStore添加到协调器中,但是文档对如何做到这一点略知一二。

    谢谢,

    Jk公司

    1 回复  |  直到 15 年前
        1
  •  1
  •   Marcus S. Zarra    15 年前

    如果不想删除目标存储并覆盖它,则工作流为:

    1. 使用源持久存储建立第二个核心数据堆栈。
    2. 从源获取每个实体。
    3. 在目标中查找对象。
    4. 如果没有,就创建它。
    5. 保存目标存储。

    根据你有多少数据,这可能是一个非常昂贵的操作。