尝试从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)

我得到一个空字符串string
speaker name:

这四行在我模型的init方法中在一起

更新1 :我发现一个答案,表明您只是在控制台中打印时看不到值:Realm object is missing all properties except primaryKey,但我也尝试通过警报 View 显示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)

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

最佳答案

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

10-06 13:04
查看更多