【发布时间】:2017-06-19 01:11:20
【问题描述】:
在一个 iOS 应用中,我们在一个循环中多次调用 observeSingleEvent() 来填充一个列表:
for i in 1...10 {
ref.child("\(i)").observeSingleEvent(of: .value, with: { (snapshot) in
// Add another value to the list
let value = snapshot.value as? NSDictionary
list.append(value)
// All values are in the list
if list.count == 10 {
reloadView()
}
})
}
我们希望这 10 个调用或多或少同时处理,并且在所有调用完成后打算执行某个操作(例如在视图中显示列表)。
我们计算列表中的元素以确定所有调用何时完成,但我们正在寻找一种更有效/更优雅的方式来完成同样的事情。 Swift 中是否有更好的方法或 Firebase 推荐的更好方法?
【问题讨论】:
-
这对我来说似乎是一个合理的方法。您可以跟踪仍待处理的项目的确切 ID,但我在这里看不到任何好处。
-
您可以一次获取所有 10 个项目,有一些方法可以获取从
childId开始的n元素。可能在您的情况下,您可以从子1开始获取 10 个项目。你能详细说明你想要达到的目标吗? -
你考虑过递归方法吗?
标签: ios swift firebase swift3 firebase-realtime-database