以不同方式存储用户和应用程序核心数据

Storing user and application core data differently

在我的 IOS 应用程序中,我将两种类型的数据存储在 CoreData 中。一种是用户生成的,另一种是预生成的数据库。目前这一切都在同一家商店,进入文档文件夹。但这不是一个好办法,所以我会分成2个独立的商店。

有两个问题:

  1. 预生成的数据库不应该被iCloud备份。
  2. 当提供应用程序更新时,应保留用户数据,但应覆盖预生成的数据库。 (即使数据模型未更改,预生成的数据库也会更新内容。)

对于问题1,我可以将预生成的数据库存储放在缓存目录中,或者将其保存在标记为跳过备份的文档目录中。由于缓存目录可以随时清空,因此使用不备份的文档文件夹似乎更好。但是,这是否解决了问题 2?即更新后会不会覆盖预生成的数据库?

如果不行,还有其他解决办法吗?

您可以将预生成的额定数据库保存在文件夹中,并在 iCloud 中标记它以跳过备份。但是,您必须编写一些脚本来覆盖数据,或者在更新时,您可以完全删除预生成的存储并使用更新后的数据重新创建它。