调用 Realm().objects 时使用未实现的初始值设定项'init(realm:schema:)'



我试图通过使用

检索Realm的对象
Realm(path: Realm.defaultPath).objects(Fruits)

这是我得到的结果:

12: 7: fatal error: use of unimplemented initializer 'init(realm:schema:)' for class DB.Fruits

对象只有以下init:

required init() {
        super.init()
        nextPrimaryKey()
    }

我已经浏览了关于init()s问题的所有信息,但是它们都没有解决问题(包括这个几乎完全相同的问题)。知道怎么解吗?

现在支持重写init。但是,如果您覆盖required init,那么在使用convenience init作为指定初始化器时可能会遇到这个问题。这可以通过移除 required init来修复。

例如:

required init() {
    super.init()
}
convenience init(dict: [String: AnyObject]) {
    self.init()
    // custom init work
}

应该成为:

convenience init(dict: [String: AnyObject]) {
    self.init() // still calling self.init(), not super.init()
    // custom init work
}

RealmSwift.Object目前不支持子类添加新的必需初始化项,只支持convenience初始化项。

可以在https://github.com/realm/realm-cocoa/issues/1849找到更多关于初始化器和不支持的详细信息。

最新更新