首页 > 解决方案 > 升级 Swift Realm Braking Changes,我可以更改类名或如何解决冲突?

问题描述

我正在将Realm一个 iOS Swift 应用程序从5.5.1使用10.12.0Cocoa Pods 更新。

public typealias User = RLMUser此更新有一个与我自己的冲突的重大更改public final class User: Object。重构为另一个名称会使我的应用程序assert(object.realm != nil)在读取此用户类时崩溃。

是因为我已经重命名了我的班级并且领域数据库期待它的数据库中的旧名称吗?或者我应该在应用程序启动时进行某种合并?

或者我应该创建自己的分支来更改 Pod 中的“typealias User = RLMUser”?

标签: iosswiftrealm

解决方案


是因为我已经重命名了我的班级并且领域数据库期待它的数据库中的旧名称吗?

是的。您可以通过按照此处所述进行迁移来解决此问题,也可以覆盖_realmObjectName

class RenamedUser: Object {
    ...

    override class func _realmObjectName() -> String? {
        "User"
    }
}

这种方式,对于 Realm,RenamedUser仍然被称为User,但对于 Swift,它被称为RenamedUser


推荐阅读