一个领域的数据模型的变化需要迁移另一个领域。为什么呢?

时间:2016-03-31 22:02:16

标签: ios swift realm

我的应用中有两个领域数据库。

一个随应用程序一起提供(只供用户阅读),位于NSBundle.MainBundle中。 创建另一个(为用户读取和写入)并存储在文档目录中。

但是,如果我对捆绑领域中的模型进行了更改,则用户创建的领域不起作用,并表示需要迁移。

这怎么可能?这是位于不同位置的两个不同领域。

在具有3个不同领域的虚拟项目中进行一些测试(存储在相同位置,但名称不同)后,我可以在RealmBrowser中看到所有类名都包含在领域文件中。他们为什么混在一起?它们不应该是独立的数据库吗?

虽然我们是一个主题: 创建多个领域文件与创建具有多个类的领域文件有什么区别?

感谢您的任何澄清!

此致

埃里克

1 个答案:

答案 0 :(得分:2)

默认情况下,Realm文件将在首次访问app二进制文件中定义的所有Realm模型时在后备文件中创建“表”。这使得使用单个Realm的常见情况对最终用户来说非常简单。即使您使用多个领域但希望它们共享同一组模型,这也非常简单,并且受此默认行为支持。

如果您想使用不同型号的多个领域,可以将模型传递到objectTypes的{​​{1}}属性:

Realm.Configuration

您可以在Realm文档的Class Subsets部分阅读有关此功能的更多信息。