首页 > 解决方案 > 如何访问在闭包中创建的数组?

问题描述

我创建了 scheduleDict1 并将其插入 scheduleArray1。当在闭包中声明它时,我只能让闭包“看到” scheduleArray1,就像现在在代码中一样。但是,除了闭包之外,我无法访问 scheduleArray1 。

我曾尝试在 MainViewController 类中声明 scheduleArray1 而不是闭包,但在闭包内不会看到它!

import UIKit
import Firebase


class MainViewController: UITableViewController {

  //  var scheduleArray1 = [[String: String]]()
    var scheduleDict = [String: Any]()

    override func viewDidLoad() {
        super.viewDidLoad()
        retrieveSchedule()
        }

    func retrieveSchedule(){
        let ref = Database.database().reference(withPath: "squadrons/vt-9/2019-04-02/events/")
        ref.observe(.value) { (snapshot) in
            var scheduleArray1 = [[String: String]]()
            var count = 0
            let enumerator = snapshot.children
            while let rest = enumerator.nextObject() {
                let refToPost = Database.database().reference(withPath: "squadrons/vt-9/2019-04-02/events/" + "\(count)")
                refToPost.observe(.value, with: { (snapshot) in
            //      let data = snapshot.children
                    let scheduleDict1 = snapshot.value as! [String: String]
                    scheduleArray1.append(scheduleDict1)

                  //  self.print(scheduleArray1)
                })
                count += 1
            }
        }

    }   
}

标签: iosswiftclosures

解决方案


推荐阅读