После чтения эволюции Swift 3 в GCD, я пытаюсь создать группу отправки. Проблема заключается в том, что group.notify(queue:
не уведомляет, когда я передаю DispatchQueue.main
как очередь, хотя он работает в фоновом режиме.
Также я не уверен, что мой синтаксис прав, поскольку я пытаюсь преобразовать код из Swift 2 в Swift 3.
typealias CallBack = (result: Bool) -> Void
func longCalculations (completion: CallBack) {
let backgroundQ = DispatchQueue.global(attributes: .qosBackground)
let group = DispatchGroup()
var fill:[Int] = []
for item in 0...200 {
group.enter()
if item > 50 {
fill.append(item)
}
group.leave()
}
//Below in the notify argument If I pass `backgroundQ`, it seems to work correctly but not when DispatchQueue.main is passed.
Этот код не работает
group.notify(queue: DispatchQueue.main, execute: {
completion(result: true)
})
}
Это работает правильно
group.notify(queue: backgroundQ, execute: {
completion(result: true)
})
}
_______________________________________________________
longCalculations() { print($0) }