我的应用程序中有两个 Realm 数据库。
其中一个随应用程序提供(用户只读),位于 NSBundle.MainBundle 中。 另一个创建(为用户读写)并存储在文档目录中。
但是,如果我对捆绑 Realm 中的模型进行更改,则用户创建的 Realm 无法正常工作并提示需要迁移。
这怎么可能?这是位于不同位置的两个不同 Realm 。
在具有 3 个不同 Realm (存储在同一位置,但名称不同)的虚拟项目中进行一些测试后,我可以在 RealmBrowser 中看到所有类名都包含在 Realm 文件中。他们为什么混在一起?它们不应该是独立的数据库吗?
虽然我们是主题之一: 创建多个 Realm 文件与创建具有多个类的 Realm 文件有什么区别?
感谢任何澄清!
问候,
埃里克
最佳答案
默认情况下,Realm 文件将在首次访问应用程序二进制文件中定义的所有 Realm 模型时在后备文件中创建“表”。这使得使用单个 Realm 的常见情况对于最终用户来说变得极其简单。即使您正在使用多个 Realm ,但您希望它们都共享同一组模型,这也非常简单并且受此默认行为支持。
如果您想使用多个 Realm ,每个 Realm 都有不同的模型,您可以将模型传递给 Realm.Configuration
的 objectTypes
属性:
let config = Realm.Configuration(objectTypes: [MyClass.self, MyOtherClass.self])
let realm = try! Realm(configuration: config)
您可以在 Class Subsets 中阅读有关此功能的更多信息Realm 文档的一部分。
关于ios - 一个 Realm 数据模型的变化需要迁移另一个 Realm 。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36344624/