ios - 如何访问在闭包中创建的数组?
问题描述
我创建了 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
}
}
}
}
解决方案
推荐阅读
- android - onNext 没有被调用
- database - sqlcmd 的批处理文件脚本
- python - 比较熊猫中的两个数据框后不会删除重复的行
- algorithm - Minimax 算法不能按预期工作
- python - 在 Python 中删除具有连续部分重复的元素
- javascript - Promise.all() 带地图,静音
- python - 堆叠和嵌套的 if else 语句不会移动到下一个 if
- android - 如何在外部 Google 地图应用中加载 Android Direction API 结果?
- spring-security - 从网络安全中排除一个 URL
- node.js - NodeJS - 使用包及其来自本地系统的依赖项