【发布时间】:2019-02-24 14:25:27
【问题描述】:
我需要对数组中的每个元素执行一次异步操作,一次一个。此操作回调主队列。
func fetchResults(for: array, completion: () -> Void) {
var results: [OtherObject]: []
let queue = DispatchQueue(label: "Serial Queue")
queue.sync {
let group = DispatchGroup()
for object in array {
group.enter()
WebService().fetch(for: object) { result in
// Calls back on main queue
// Handle result
results.append(something)
group.leave()
}
group.wait()
}
}
print(results) // Never reached
completion()
}
WebService 调用没有回调 - 我认为这告诉我主队列被阻塞,但我不明白为什么。
【问题讨论】:
-
您好,您可以重新打开这个已关闭的问题吗?范围不同(更改 1 个点,而不是所有点),因此重复目标不适用:stackoverflow.com/questions/51303719/…
标签: swift grand-central-dispatch dispatch-queue