【发布时间】:2016-08-28 04:26:12
【问题描述】:
我正在尝试使用调度组来等待两个异步进程完成。然而,第二个异步函数循环到我数据库中的消息量。
下面的代码崩溃是因为第二个异步函数多次执行,导致dispatch离开的次数多于dispatch进入的次数,导致dispatch的数量不均衡。在这种情况下是否有不同的方法来实现调度组。
dispatch_group_enter(dispatch_group)
ref.observeEventType(.ChildAdded, withBlock: {(snapshot) in
//execute once
dispatch_group_leave(self.dispatch_group)
}
dispatch_group_enter(dispatch_group)
ref.observeEventType(.ChildAdded, withBlock: {(snapshot) in
//execute 1000 times
dispatch_group_leave(self.dispatch_group)
}
dispatch_group_notify(self.dispatch_group, dispatch_get_main_queue()) {
print("done")
}
【问题讨论】:
-
那么整个第二个块被执行了多次?
标签: ios swift firebase firebase-realtime-database grand-central-dispatch