【问题标题】:Realm backed by several files?由几个文件支持的领域?
【发布时间】:2016-12-21 13:45:49
【问题描述】:

是否可以管理存储在多个文件中的数据?

假设我有几个文件data1.realmdata2.realmdata3.realm 等包含具有相同模型的对象。是否有可能获得一个唯一的RLMRealm 实例来访问所有这些文件的数据?

如果不是,那么处理这种情况的最佳方法是什么?迁移?

【问题讨论】:

  • 一个Realm实例属于一个Configuration,一个Configuration属于一个文件。

标签: realm realm-migration


【解决方案1】:

管理存储在不同领域中的数据绝对是可能的,但它不会是自动的。您需要在自己的应用逻辑中管理对这些数据的访问。

RLMRealm 实例本身代表磁盘上的单个文件,不能动态创建以引用其他领域的组合。一旦 RLMObject 被添加到父 RLMRealm,它就不能被移动/备份到另一个代表不同文件的 RLMRealm

这很可能取决于您的特定用例,但最简单的解决方案是简单地在每个文件的单独 RLMRealm 实例中查询您的对象,并将每个文件中生成的 RLMResults 对象放在 @ 987654327@.

虽然数据不能在 Realms 之间直接共享,但您可以使用全局唯一的主键(例如 NSUUID)来指示不同 Realms 中的对象之间的关系。

如果您需要,如果您最终想要在领域之间移动对象,也可以创建 RLMObjects 的无领域副本:

Dog *savedDog = [[Dog allObjects] firstObject];
Dog *copiedDog = [[Dog alloc] initWithValue:savedDog];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-10
    • 1970-01-01
    相关资源
    最近更新 更多