如何在Swift 3,Swift 4及更高版本中dispatch_sync,dispatch_async,dispatch_after等?我在Swift 2.x(甚至1.x)項目中有很多代碼,如下所示:// Move to a background thread to do some long running workdispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {
let image = self.loadOrGenerateAnImage()
// Bounce back to the main thread to update the UI dispatch_async(dispatch_get_main_queue()) {
self.imageView.image = image }}或者像這樣的東西來延遲執行:dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(0.5 * Double(NSEC_PER_SEC))), dispatch_get_main_queue()) {
print("test")}或者Grand Central Dispatch API的各種其他用途......現在我已經在Swift 3的Xcode 8(beta)中打開了我的項目,我得到了各種錯誤。其中一些提供修復我的代碼,但并非所有修復產生工作代碼。我該怎么辦?
3 回答

侃侃無極
TA貢獻2051條經驗 獲得超10個贊
在Xcode 8 beta 4不起作用......
使用:
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { print("Are we there yet?")}
對于異步兩種方式:
DispatchQueue.main.async { print("Async1")}DispatchQueue.main.async( execute: { print("Async2")})
- 3 回答
- 0 關注
- 1289 瀏覽
添加回答
舉報
0/150
提交
取消