【问题标题】:How to add same object type as different tables in same realm?如何将相同的对象类型添加为同一领域中的不同表?
【发布时间】:2016-05-10 18:29:54
【问题描述】:

我正在使用领域来缓存特定于上次搜索的某些网络数据。我还希望能够为这些数据加注星标或固定以保存以供将来使用。数据对象完全相同,我在文档中找不到任何可以将它们保存在 Realm 中的单独表中的内容。

【问题讨论】:

  • 考虑使用单独的领域进行缓存。无论如何,在某些时候,您必须为“表”提供单独的名称,因为相同的成功可能是不同的数据库。

标签: ios realm


【解决方案1】:

最简单的方法是简单地创建一个具有不同名称的模型对象的子类(例如,MyDataObject 及其子类MySavedDataObject)。这将在 Realm 数据库文件中创建一个具有相同架构的新表,并让您区分这两种类型的对象。

然后您可以创建一个普通对象的副本作为保存对象,如下所示:

let myNewSavedObject = MySavedDataObject(value: myDataObject)

话虽如此,我个人建议不要复制数据,而是使用现有数据集更高效一些。当然,只需向名为saved 的模式添加一个额外的布尔属性,您就可以简单地标记您希望保留的对象,而无需整个第二个表。 :)

【讨论】:

  • 将对象上的另一个字段标记为已保存是第一种方法。问题是这些数据都来自网络,因此“保存”的字段并没有真正接近那个特定的模型对象。我只想对网络模型进行建模。此外,一旦我更改了我的搜索条件,我将在该点提取不同的数据以进行缓存,因此理想情况下这些数据都不会保留。这就是为什么我想将特定结果保存到另一个区域以保留。
  • 我不喜欢在不引入显式附加行为的情况下进行子类化,但接下来我可能会尝试。我不知道这样做的方便方法。之前尝试过 copy(),所以我会尝试一下。
猜你喜欢
  • 2020-10-22
  • 2012-11-17
  • 1970-01-01
  • 1970-01-01
  • 2013-11-13
  • 1970-01-01
  • 1970-01-01
  • 2021-01-22
  • 1970-01-01
相关资源
最近更新 更多