Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift 4:值不能存储在循环外部_Ios_Swift_Xcode_Dictionary_For In Loop - Fatal编程技术网

Ios Swift 4:值不能存储在循环外部

Ios Swift 4:值不能存储在循环外部,ios,swift,xcode,dictionary,for-in-loop,Ios,Swift,Xcode,Dictionary,For In Loop,我试图从firebase获取数据并存储在字典中,但dict中的值只能存储和打印在“第一个列表”中,而不能存储和打印在“第二个列表”中并打印为“nil” 1) 那么,我如何将这些值保存在firebase中下载并打印在“第二个列表”中呢 2) 如何将值存储在字典中,并在func之外重复使用它们,例如,按用户默认值存储字典 “Swift 4:值不能存储在循环外部”:可以。只是缺少了一个事实,observe(value:with)是异步的。寻找“Async+Swift+Close”来处理它。谢谢Larm

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

1) 那么,我如何将这些值保存在firebase中下载并打印在“第二个列表”中呢


2) 如何将值存储在字典中,并在func之外重复使用它们,例如,按用户默认值存储字典

“Swift 4:值不能存储在循环外部”:可以。只是缺少了一个事实,
observe(value:with)
是异步的。寻找“Async+Swift+Close”来处理它。谢谢Larme,我用调度组解决了它。
    @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)")
}