ios - 如何迁移未存储的 Realm 对象?

标签 ios swift migration realm

我有一个我还没有存储在任何地方(还)的对象。即使没有为它创建 Realm,应用程序也会崩溃并提示我修改该对象后需要迁移。

我试过这个(在方法 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool 中):

RLMRealm.setSchemaVersion(1, forRealmAtPath: RLMRealm.defaultRealmPath()) { (migration: RLMMigration!, oldSchemaVersion: UInt) -> Void in
    if oldSchemaVersion < 1 {
        // not needed, nothing stored...
    }
}
RLMRealm.defaultRealm()

日志:

*** Terminating app due to uncaught exception 'RLMException', reason: 'Migration is required for object type 'PYDRealmChange' due to the following errors:
- Property 'relativePath' is missing from latest object model.
- Property 'source' has been added to latest object model.
- Property 'target' has been added to latest object model.'

这是我在文档中找到的内容。它没有帮助,应用程序仍在崩溃。我的猜测是我需要实际 Realm 来执行迁移。所以我的问题是 - 如果没有,我该如何迁移?

最佳答案

所以问题解决了:

我不知道的事实是,我猜测模型对象设置在应用程序中存在的所有 Realm 中,无论我是否将其存储在其中。解决方案是为我的应用程序中的所有 Realm 对象复制/粘贴代码 RLMRealm.setSchemaVersion...。然后它开始工作。

关于ios - 如何迁移未存储的 Realm 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30895696/

相关文章:

ios - startUpdatingLocation +“用于位置更新的应用程序注册”停止工作

ios - 以编程方式调整 UIImage 大小不起作用

ios - 为什么我无法将文件作为 Alamofire 中的参数值之一附加?

swift - 默认情况下,常量未分配的可选值不会为零

php - 在 Laravel 中添加外键约束时出错 - 按正确顺序迁移

mysql - 如何在 mysql 中使用 laravel 迁移将数据库列 'null' 更改为 'nullable'?

ios - Cocoa 单例和共享实例

ios - Swift 委托(delegate)方法永远不会被调用

ios - 在我的测试设备上无法获取 Firebase A/B 草稿实验远程配置值

c# - 具有现有数据库 View 的 Entity Framework 代码优先