【发布时间】:2018-10-03 09:46:09
【问题描述】:
我创建了一个对象数组 playerArray 来存储玩家的数据,然后我通过 ref 调用 firebase 数据库。在闭包中,我确实从 firebase 获取值并将其分配给属性 .name 但在闭包中,值被重新初始化为初始值。
var playerArray:[model] = [model]()
let ref = Database.database().reference().child("Players").child("Ronaldo")
func read(){
ref.observe(.value) { (snap) in
var val = snap.value as! Dictionary<String,AnyObject>
let name = val["Name"] as! String
let Model = model()
Model.name = name
self.playerArray.append(Model)
print(snap)
}
}
override func viewDidLoad() {
super.viewDidLoad()
read()
table.delegate = self
table.dataSource = self
table.reloadData()
}
【问题讨论】:
-
与问题无关 - 使用 lowerCamelCase 作为变量名,使用 UpperCamelCase 作为类型名。
-
使用
single observer而不是observe,在关闭时重新加载表,因为在重新加载表的位置不会获得数据。
标签: ios swift firebase asynchronous