尝试从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中读取数据。