gpt4 book ai didi

ios - Realm 对象字段有时为零

转载 作者:搜寻专家 更新时间:2023-10-31 22:44:05 25 4
gpt4 key购买 nike

我对 Realm 中的对象有一个奇怪的问题。当我从 Realm 数据库中获取一个对象时,有时它的一些字段(它只发生在 RealmOptionals 上)在访问它们之后为 nil。

但这真的很奇怪,因为如果我在访问那些字段之前放置一个断点,然后我在 lldb 上执行 po object.field,那么 nil 字段就会消失。我已经看到,也许我忘记了将这些字段设置为“动态”,但在我的情况下,按照 Realm 文档,我必须使用 RealmOptional 作为可选 bool 值。

有谁知道这里的问题是什么?

提前致谢。

编辑:我用来从 Realm 中检索和对象的方法是:

    func getObject(atPosition position:Int)->Object{
let objects = realm.objects(Object.self)
return objects[position]
}

最佳答案

我不太确定你在问什么。如果 Realm 属性被标记为可选,那么它的初始值将为 nil正如预期的那样。

您是正确的,因为您需要使用 let propertyValue = RealmOptional<Bool>()而不是 dynamic因为普通的 bool 数据类型不能表达 nil自己的值(value)。所以这是 dynamic 的一个异常(exception)属性规则。

另请注意,您需要使用 optional.value设置一个可选的 bool 值:

class Dog: Object {
dynamic var name = ""
dynamic var age = 0
let vaccinated = RealmOptional<Bool>()
}

let realm = try! Realm()

let myDog = Dog()
myDog.name = "Sherlock Bones"
myDog.age = 4
myDog.vaccinated.value = true

try! realm.write {
realm.add(myDog)
}

关于ios - Realm 对象字段有时为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41227657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com