我的应用中有两个领域数据库。
一个随应用程序一起提供(只供用户阅读),位于NSBundle.MainBundle中。 创建另一个(为用户读取和写入)并存储在文档目录中。
但是,如果我对捆绑领域中的模型进行了更改,则用户创建的领域不起作用,并表示需要迁移。
这怎么可能?这是位于不同位置的两个不同领域。
在具有3个不同领域的虚拟项目中进行一些测试(存储在相同位置,但名称不同)后,我可以在RealmBrowser中看到所有类名都包含在领域文件中。他们为什么混在一起?它们不应该是独立的数据库吗?
虽然我们是一个主题: 创建多个领域文件与创建具有多个类的领域文件有什么区别?
感谢您的任何澄清!
此致
埃里克
答案 0 :(得分:2)
默认情况下,Realm文件将在首次访问app二进制文件中定义的所有Realm模型时在后备文件中创建“表”。这使得使用单个Realm的常见情况对最终用户来说非常简单。即使您使用多个领域但希望它们共享同一组模型,这也非常简单,并且受此默认行为支持。
如果您想使用不同型号的多个领域,可以将模型传递到objectTypes
的{{1}}属性:
Realm.Configuration
您可以在Realm文档的Class Subsets部分阅读有关此功能的更多信息。