2015-04-06 84 views
0

我知道我可以将预填充的SQLite文件设置为CoreData persist文件。但是,当我更新我的应用程序版本,并且需要更新预填充数据时,我想知道除了在新版本启动之后按代码删除新的预填充数据之外,是否还有其他方法来执行此操作。如何更新预先填充的CoreData SQLite文件?

+0

你看过使用属性列表文件吗?一旦你学会将列表中的数据解析到你的SQLite数据库中,我发现它们相对容易管理。 – andrewbuilder 2015-04-07 08:26:16

回答

0

你可以选择预填充的SQLite文件作为persistentStoreCoordinator源文件,但请记住,如果你去更新数据,用户生成的内容将会丢失......

+0

我知道,所以我认为使用代码来将更新的预填充数据转换为旧版本应用程序是唯一方法。 – user392412 2015-04-06 08:53:36

0

在我的项目之一我也遇到过类似的问题。我的方法就是这样。

  1. 在Core Data中创建2个配置。一个用于静态数据,另一个用于动态数据。

  2. 虽然配置您的persistantCordinator设置两个单独的SQLite文件相应的CoreData配置。

  3. 除了在persistantCordinator级别设置两个单独的数据库之外,没有extrac编码工作。其他的一切都将由CoreData来管理。阅读,写作等

  4. 对于静态数据库保持自己的DATABASE版本。当您的静态数据更改增加此数据库版本和应用程序启动时使用此新版本检查现有的数据库版本。如果新版本更大,则复制并替换现有的静态数据库。

用这种方法你有以下好处。

  1. 你不会失去你的动态数据。

  2. 只有当静态数据发生变化时,才需要更改静态数据库。

希望这会有所帮助。