【发布时间】:2015-04-29 07:54:01
【问题描述】:
我们需要在 iOS 应用程序包中发送大量种子数据。但是,应用程序需要根据需要更新来自服务器的数据。来自服务器的更新需要根据需要“覆盖”种子数据。
计划是有两个持久存储,“a”和“b”,其中“a”是从应用程序包中安装的只读持久存储,“b”是读写持久存储。我们需要两个商店共享相同的模型(和实体)以保持应用程序逻辑简单。因此,如果一个实体被修改并且它最初在存储“a”中,则修改应该保存在存储“b”中,这会覆盖“a”中存在的任何属性。本质上,它是一种“写时复制”范例。
问题是:
- 这在 Core Data 中可以实现吗?怎么样?
- 如果不可行,是否有其他替代方法可以拥有大量种子数据,但又不会在用户设备上复制(也就是浪费)空间?
【问题讨论】:
-
为什么需要存储“a”(只读的)?您不能在应用程序包中提供预先填充的数据,然后只使用一个商店吗?
-
@MichałCiuba 种子数据非常大,因此从应用程序包中复制数据(以便可以写入)需要复制数据,这对用户来说并不“礼貌” .当用户安装它时,其中一些种子数据项可能会过时,因此需要部分更新。此外,应用程序的每次更新也需要更新这些数据,如果现有数据文件已经包含用户内容,我们不能只覆盖它。
标签: ios entity-framework cocoa core-data