【发布时间】:2015-05-12 13:32:21
【问题描述】:
我有一个已发布的应用程序将核心数据与 iCloud 同步。 我需要更新模型添加两个属性,然后填充这些新字段。
我在本地测试过轻量级迁移,效果很好,可以看到旧数据迁移到新模型方案中。
当我激活 iCloud 时,保存在 ubiquity 容器中的旧数据不会与新模型架构同步。 预期的行为是什么? 我应该能够在新旧模型版本上同步数据吗? 我怎样才能实现它并测试这种情况?
我读过:
Understanding Core Data iCloud Store Migration When Testing an iOS App Update
但实际上,我很困惑。
【问题讨论】:
-
我发现升级 iCloud 商店并不可靠,尤其是在使用 WAL 模式时。我现在采取的方法是在应用启动时检查商店是否需要升级,如果需要,我首先将商店迁移到本地商店,然后执行升级,然后将其迁移回 iCloud。这似乎现在可以可靠地工作,但确实需要与用户进行一些交互,因为事情可能需要一段时间,并且您需要确保 iCloud 存储被完全删除,然后在所有设备上被替换......
-
我不希望在这次迁移中涉及用户交互,但像 stackoverflow.com/questions/27792667/… 这样的情况让我感到害怕
-
没错,请参阅上面我在 iCloud 商店上重新执行迁移的观点...如果它不是 100% 可靠,则不是一个选项。我还提供了一个备份功能,可以将现有存储(iCloud 或本地)迁移到另一个本地文件。然后,用户可以选择将备份文件复制到 iCloud 以提供额外的备份副本和/或从其中一个备份中恢复数据库。您可以在我的其他一些帖子中找到更多信息,其中包含指向示例应用程序和其中一些代码的链接。
标签: ios core-data icloud core-data-migration