Swift3.0 /Swift2.3——dispatch_group的使用
阿新 • • 發佈:2019-02-16
在專案開發中有時候需要把一些迴圈執行的非同步操作加入到group中,讓徹底迴圈完之後再進行下一步操作
建立一個組
//swift2.3:
let group = dispatch_group_create()
//swift3.0:
let group = DispatchGroup()
迴圈載入資料
//swift2.3: for _ in array.count { //將當前的下載操作新增到組中 dispatch_group_enter(group) //在這裡非同步載入任務 //離開當前組 dispatch_group_leave(group) } //swift3.0: for _ in array { //將當前的下載操作新增到組中 group.enter() //在這裡非同步載入任務 //離開當前組 group.leave() }
全部載入完後通過閉包通知呼叫者
//swift2.3:
dispatch_group_notify(group, dispatch_get_main_queue()) { () -> Void in
//在這裡告訴呼叫者,下完完畢,執行下一步操作
}
//swift3.0:
group.notify(queue: DispatchQueue.main) {
//在這裡告訴呼叫者,下完完畢,執行下一步操作
}