是否可以在一个 iOS 应用程序上拥有多个核心数据“数据库”?

zar*_*don 3 core-data multiple-databases nsmanagedobject nsentitydescription

我想编写一个大量利用核心数据的“管理”游戏。游戏需要预先设置、预定义的数据集,用户/系统无法更改;它用于为游戏提供数据种子,并且是只读的。

我能给出的最好的例子是足球管理游戏,但它可以是任何东西。在一些足球管理模拟游戏中,他们为您提供场景和预设数据集。

当用户继续游戏时,他们可以保存/加载保存到核心数据的进度。

除此之外,用户还可以接收预定义数据的更新或购买场景数据包;保存到他们的设备上。

因此,可能有多个“核心数据数据库”(是的,我知道核心数据严格来说并不是一个数据库)或应用程序可以深入使用的“存储桶”。

数据的架构不会改变。

所以我们有:

  1. 仅用于播种游戏的预定义数据(默认数据)。
  2. 用户当前保存的游戏。
  3. 用户已从互联网下载了一个场景。
  4. 问题:当用户在“场景”中保存游戏时会发生什么。
  5. 问题:如何跟踪核心数据中的所有场景和所有用户保存的游戏?

这听起来像是在给定时间有多个数据库。显然,应该限制用户可以保存游戏的数量。

另一种解决方案是用户的设备以 JSON 或 XML 格式导出数据的备份副本,并将其用作“保存数据”,我也可以在场景中使用此策略。显然,需要某种加密来防止人们通过 XML 简单地更改游戏中的统计数据。

但我从一开始就想知道使用 iOS 设备的核心数据处理多个核心数据“数据库”的最佳方式是什么?

谢谢你的时间

Jod*_*ins 5

如果数据模型相同,您只需设置 MOC,以便它使用两个持久存储……一个是只读的,另一个是读/写的。

或者,您可以为每个商店使用单独的 MOC。

因此,您想要如何使用它是您唯一的决定因素,因为您几乎可以拥有 MOC/PSC 的任何组合。

请参阅此处的文档以获取更多信息。


编辑

此问题给出的链接已死,其他人在另一个已删除的答案中建议了此链接