我一直在寻找答案,但似乎我错过了一些明显的东西。我以前做过一个相当复杂的核心数据应用程序,但过去几个月我没有回答这个问题。
这是问题所在: 1)我的模型中有大约20个实体。 2)其中一些实体具有用户可编辑的对象,其他实体具有预加载的数据 3)我想知道是否可以在每次新的应用更新时更新预加载的实体。
我知道我可以通过指定每个更新的属性以“手动”方式执行此操作,但这太麻烦了。我想在用户打开应用程序的更新版本后更新所有预加载的实体。我不想触摸用户数据。
非常感谢你的帮助!
答案 0 :(得分:0)
您可以在架构中使用版本号字段,以便将版本号与每条记录相关联。如果它有一个值,那就是一个预加载。然后对于预加载的东西,只需在应用程序打开时插入新数据,然后忽略/删除旧数据。看起来很简单。
更新:
我认为另一种选择是将预加载的数据分成完全不同的数据存储。我有一个应用程序,其中我通过自定义SQLite文件和CoreData存储中的用户数据提供预加载的数据。我可以这样做,因为我的预加载数据是只读的,这使我无需将SQLite文件复制到文档目录中。这意味着,在每次更新时,新数据文件都会根据应用程序安装自动覆盖旧数据。用户的数据应保持原样。
当然,如果您的预加载数据不是只读的,那么就无法编写代码。在这种情况下,我无能为力,没有关于你的问题的更多细节。