首页 > 解决方案 > Swift 4:值不能存储在 for-in 循环之外

问题描述

    @IBAction func getListBtnPressed(_ sender: Any) {

    var dict:Dictionary=[String:String]()
    var refData:DatabaseReference!

    refData = Database.database().reference().child("vacancies")
    refData.observe(DataEventType.value, with: { (snapshot) in

        if snapshot.childrenCount > 0 {

            for vacancies in snapshot.children.allObjects as! [DataSnapshot] {
                let vacancyObject = vacancies.value as? [String: AnyObject]
                let vacancyName = vacancyObject?["vacancyName"] as! String
                let vacancyNumber = vacancyObject?["vacancyNumber"] as! String
                list["\(vacancyName)"]=vacancyNumber
                //print("First List: \(dict)")
            }
        }
    })

    print("Second List: \(dict)")
}

我试图从firebase获取数据并将其存储在字典中,但dict中的值只能存储和打印在“第一个列表”中,而不是“第二个列表”中并打印“nil”。

1)那么我怎样才能将这些值保存在firebase中并打印在“第二个列表”中。

2)如何将值存储在字典中并在函数之外重新使用它们,例如。通过 UserDefaults 存储字典?

标签: iosswiftxcodedictionaryfor-in-loop

解决方案


推荐阅读