零而迅速
问题描述:
解析火力点我试图解析从火力点值到我的字典:零而迅速
for rest in snapshot.children.allObjects as! [FIRDataSnapshot] {
guard let restDict = rest.value as? [String: String] else {
continue
}
if (restDict["uid"] != FIRAuth.auth()?.currentUser?.uid && (restDict["userCity"])! == "SomeCity"){
self.users.updateValue(restDict["userImgLink"]!, forKey: restDict["userName"]!)
print(self.users["userName"])
}
}
这里是我的字典声明:
var users: [String : String] = [:]
restDict值返回我的可选(” somestring“),但elf.users [”userName“]返回nil。我怎么能在我的字典中获得真正的价值?提前致谢。
答
在下面的行中,您试图为密钥restDict["userName"]!
设置值restDict["userImgLink"]!
,因此密钥将是值restDict["userName"]!
而不是"userName"
。
self.users.updateValue(restDict["userImgLink"]!, forKey: restDict["userName"]!)
但在打印时,您试图获取"userName"
键的值,该值将为零。
+0
谢谢,我应该写在这种情况下?如果我删除“!”,我无法构建我的应用程序。 – Burning
我会建议做一些调试,并检查'restDict'中的所有值的值是什么,这将是很好的添加一个作为代码片段... –
你确定关键的userName存在吗? – Anuraj
@Anuraj是的,它返回我可选(“名称”) – Burning