gpt4 book ai didi

ios - 值没有出现在我的其余代码中

转载 作者:行者123 更新时间:2023-11-28 12:22:24 25 4
gpt4 key购买 nike

我正在使用以下内容填充我的“filteredLocations”数组:

    let sampleRef = FIRDatabase.database().reference().child("SamplePost").child("post")

sampleRef.observeSingleEvent(of:.value, with: {(snapshot) in
if let result = snapshot.children.allObjects as? [FIRDataSnapshot] {
for child in result{
let dictionary = child.value as? [String: AnyObject]
let lat = dictionary?["lat"] as! Double
let long = dictionary?["long"] as! Double
let structure = MapPoints(Latitude: lat, Longitude: long)
self.filteredLocations.append(structure)
print("This is the amount in here \(self.filteredLocations.count)")

}
}
})

我的快照中的打印语句返回 2,但是当我在其他任何地方打印 filteredLocations.count 时它返回 0。我在 viewdidload 的开头有 Firebase 代码

最佳答案

您的问题是“sampleRef.observeSingleEvent”是异步的。这意味着它在等待数据的后台线程中运行,而应用程序继续在主线程上执行 viewWillAppear 等函数。

当您从服务器取回数据时,其他打印计数方法在数组填充数据之前已经执行。

为了更好地理解这一点。在 Controller 上放置一个 UIButton 并将其绑定(bind)到打印数组计数的函数。然后启动应用程序并按下按钮。它应该打印 2,因为当您按下按钮时,您应该已经从服务器取回了数据。

关于ios - 值没有出现在我的其余代码中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44415419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com