【问题标题】:Instantiating Realm model class crashes with missing key error实例化领域模型类崩溃,缺少键错误
【发布时间】:2017-11-22 09:28:17
【问题描述】:

在尝试实例化我的 RealmDouble 模型时,我收到以下错误:

*** 由于未捕获的异常“RLMException”而终止应用程序,原因:“无效值“0”以初始化“RealmDouble”类型的对象:缺少 键“双值”

class RealmDouble: Object {
    dynamic var double_value: Double = 0.00
}

RealmDouble(value: 0.0)

我已经尝试从模拟器中删除应用程序,以及删除领域文件。有谁知道如何解决这个问题?

【问题讨论】:

  • 您能否分享您用于实例化RealmDouble 实例的代码?

标签: swift realm


【解决方案1】:

如果您在 Realm 期望看到从属性名称到值的字典或值数组(例如 Realm.create(_:value:update))的地方传递 Double,您会看到此异常。例如,您会在以下代码中看到这样的错误:

realm.create(RealmDouble.self, value: 0.0)

你应该这样做:

realm.create(RealmDouble.self, value: [0.0])

【讨论】:

  • 我只是在创建 RealmDouble(value: 5.5) 的一个实例
  • 看来 RealmDouble(value: [5.5]) 工作正常。我不明白为什么需要 [] 因为我不需要模型的数组或列表类型跨度>
  • 作为value 参数传递的值用于填充相关类的所有属性。在一般情况下传递单个值是行不通的,因为类可以有多个持久属性。
【解决方案2】:

如果它对任何人有帮助,来自未来:

当我不小心在方法realm.create(type: T.Type, value:_, update:_)的第一个参数上传递了错误的类型时,引发了同样的错误 因此,请确保类型正确并设置为接受您传递的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-23
    • 2019-11-17
    相关资源
    最近更新 更多