Как получить доступ к массиву, созданному в замыкании? - PullRequest
0 голосов
/ 05 апреля 2019

Я создал scheduleDict1 и вставил его в scheduleArray1. Я могу получить закрытие, чтобы «увидеть» scheduleArray1, когда оно объявлено в закрытии, как в коде сейчас. Однако я не могу получить доступ к scheduleArray1 нигде, кроме закрытия.

Я попытался объявить scheduleArray1 в классе MainViewController вместо замыкания, но он не будет виден внутри замыкания!

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
            }
        }

    }   
}
...