【问题标题】:Use of unimplemented initializer 'init(realm:schema:)' when calling Realm().objects调用 Realm().objects 时使用未实现的初始化程序 'init(realm:schema:)'
【发布时间】:2015-07-14 16:42:17
【问题描述】:

我正在尝试使用检索领域的对象

Realm(path: Realm.defaultPath).objects(Fruits)

这是我得到的结果:

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

该对象只有以下初始化:

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

我已经浏览了有关 init() 问题的所有信息,但是没有一个解决了问题(包括这个 almost-exact question)。知道如何解决吗?

【问题讨论】:

    标签: ios swift realm


    【解决方案1】:

    覆盖初始化is now supported。但是,如果您覆盖 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
    }
    

    【讨论】:

    • 很好的答案,带有对应的领域 github 站点链接。应该是公认的答案。为我工作
    【解决方案2】:

    RealmSwift.Object 目前不支持子类添加新的必需初始化器,仅支持 convenience 初始化器。有关初始化程序和尚不支持的更多详细信息,请访问https://github.com/realm/realm-cocoa/issues/1849

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-25
      • 2017-03-22
      • 2019-04-23
      相关资源
      最近更新 更多