我需要对数组中的每个元素执行一个异步操作,一次一个。此操作回调主队列。
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 调用没有回叫 - 我认为这告诉我主队列被阻塞,但我不明白为什么。