iPhone:核心数据:在未来的应用程序版本中更新预填充的数据库

时间:2010-06-16 20:07:12

标签: iphone cocoa-touch core-data merge versioning

我正在创建一个应用程序,其中包含需要预先填充的信息数据库。此数据将在未来版本中更改。在同一个数据库中,我还需要存储用户可编辑的信息,因为用户编辑的数据直接与预填充的数据相关。

我的问题是,如果我通过在第二个应用程序中创建重复数据模型并在发布之前复制核心数据文件来预填充数据库,那么在将来的应用程序版本中如何处理该数据的更新在不破坏用户现有数据的情况下?核心数据迁移方法是否处理此问题,或者我必须编写自定义方法以在首次应用程序启动时以编程方式处理合并?

1 个答案:

答案 0 :(得分:2)

根据您的数据模型,您可以创建两个单独的持久性文件,一个可写,一个只读。然后,您可以将这两个文件添加到NSPersistentStoreCoordinator并同时联系到它们。然后,您可以在将来升级时替换只读文件。

然而,这取决于两半数据的交织方式。如果它们太紧密耦合,那么你很可能必须以艰难的方式去做;在未来的升级中,清除旧数据并逐个复制新对象。