我试图将值从Firebase解析到我的字典中:

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值返回一个Optional(“ somestring”),但elf.users [“ userName”]返回nil。我怎样才能在我的词典中获得真正的价值?提前致谢。

最佳答案

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

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


但是在打印时,您尝试获取"userName"键的值,该值为nil。

09-11 05:20