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

时间:2016-02-23 11:29:56

标签: swift realm

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

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

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

speaker:
FavoriteSpeaker {
    name = Ashley Nelson-Hornstein;
}

但是当我尝试获取name属性的值时:

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

我得到一个空字符串

speaker name:

我的模型init方法

中有四行

更新1 :我找到了一个答案,表明您在控制台中打印时只是看不到值:Realm object is missing all properties except primaryKey但我也尝试显示{{1}通过警报视图的属性,也是空的。

更新2 :只是为了确保所有内容按顺序发生并且在同一个线程中我执行了此操作:

name

但结果是一样的 - 打印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) 打印一个空字符串

1 个答案:

答案 0 :(得分:22)

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