核心数据将数据移动到共享容器中

Mat*_*eri 7 iphone xcode core-data watchkit today-extension

我有一个已发布的应用程序,它使用核心数据.
现在我想添加对手表套件和今天扩展的支持.

我需要将核心数据移动到共享容器中,而不会丢失以前用户保存的数据,我该如何以最佳方式执行此操作?

Ste*_*ton 5

您可以迁移核心数据堆栈.这里可以找到更全面的答案,但简短的版本是:

  1. 检查是否存在旧的非组数据副本
  2. 如果是,请使用该文件设置Core Data堆栈.然后使用migratePersistentStore:toURL:options:withType:error:将其移动到新位置.然后删除旧副本.
  3. 如果旧版本不存在,只需像往常一样使用新副本设置Core Data.

(Stephen回答问题是它假设Core Data堆栈是一个单独的SQLite文件,但并不总是如此.)