Realm对象属性错过了它的值,但我可以在打印整个对象时看到它

Mar*_*rov 8 realm swift

当我尝试从我的Realm中获取一个对象时,我偶然发现了一个奇怪的事情(iOS,Swift,Realm版本0.98.2)

print("speaker:")
print(RealmProvider.appRealm.objects(FavoriteSpeaker).first!)
Run Code Online (Sandbox Code Playgroud)

正确地将我的对象转储到控制台中:

speaker:
FavoriteSpeaker {
    name = Ashley Nelson-Hornstein;
}
Run Code Online (Sandbox Code Playgroud)

但是当我试图获得该name物业的价值时:

print("speaker name:")
print(RealmProvider.appRealm.objects(FavoriteSpeaker).first!.name)
Run Code Online (Sandbox Code Playgroud)

我得到一个空字符串

speaker name:
Run Code Online (Sandbox Code Playgroud)

这四条线在我的模型init方法中是一起的


更新1:我找到了一个答案,表明您在控制台中打印时只看不到值:Realm对象缺少除primaryKey之外的所有属性,但我也尝试name通过警报视图显示该属性,这也是空的.


更新2:只是为了确保一切顺序发生并且在同一个线程上我做了这个:

let favorite1 = FavoriteSpeaker()
favorite1.name = "Debbie Downer"

try! RealmProvider.appRealm.write {
    RealmProvider.appRealm.deleteAll()
    RealmProvider.appRealm.add(favorite1)
}

print("speaker:")
print(RealmProvider.appRealm.objects(FavoriteSpeaker.self).first!)

print("speaker name:")
print(RealmProvider.appRealm.objects(FavoriteSpeaker.self).first!.name)
Run Code Online (Sandbox Code Playgroud)

但结果是一样的 - 打印name打印一个空字符串

Tho*_*yne 23

name属性可能未被声明为dynamic,这导致它读取nil存储在对象本身上的值,而不是从Realm读取数据.