2016-11-08 17 views
0

在Xcode 8.1在swift3和xcode 8.1中引入了一个新的DispatchQueue,我可以使用它备份到ios 9.0吗?

//Move to a background thread to do some long running work 
dispatch_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 
    } 
} 

我得到一些错误,与上面的代码,它表明我使用DispatchQueue这是iOS的10.0,可如何清除这个错误,并与ios9.0兼容。我将使用@available和#available以确定本运行 平台

+0

那你到底要? iOS 9中的这段代码? – User511

+0

是的,你可以使用。我可以知道你的错误吗? –

+0

@DharmbirSingh。错误:'dispatch_async'已被实例方法'DispatchQueue.asynchronously(execute:)'取代'.....'dispatch_get_global_queue'已被替换为'DispatchQueue.global(attributes :)'。 .....'DISPATCH_QUEUE_PRIORITY_DEFAULT'已更名为'DispatchQueue.GlobalQueuePriority.default' –

回答

2

的SWIFT 3,你可以做这样的

DispatchQueue.global(qos: .background).async { 
    let image = self.loadOrGenerateAnImage() 
    DispatchQueue.main.async { 
     self.imageView.image = image 
    } 
} 
+0

它可以运行在ios 9,ios 8上还是只能运行在ios 10上? –

+1

@belletian是的,它可以与iOS 8和iOS 9一起使用。 – Rajat

0
Yes you can use that in iOS 8 or 9. In iOS that it will be different. 
dispatch_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 
      } 
     } 
相关问题