2017-04-05 49 views
0

解析火力点我试图解析从火力点值到我的字典:零而迅速

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。我怎么能在我的字典中获得真正的价值?提前致谢。

+0

我会建议做一些调试,并检查'​​restDict'中的所有值的值是什么,这将是很好的添加一个作为代码片段... –

+0

你确定关键的userName存在吗? – Anuraj

+0

@Anuraj是的,它返回我可选(“名称”) – Burning

回答

0

在下面的行中,您试图为密钥restDict["userName"]!设置值restDict["userImgLink"]!,因此密钥将是值restDict["userName"]!而不是"userName"

self.users.updateValue(restDict["userImgLink"]!, forKey: restDict["userName"]!) 

但在打印时,您试图获取"userName"键的值,该值将为零。

+0

谢谢,我应该写在这种情况下?如果我删除“!”,我无法构建我的应用程序。 – Burning