Wie kann ich "dispatch_sync", "dispatch_async", "dispatch_after" usw. in Swift 3, Swift 4 und darüber hinaus ausführen?
Ich habe viel Code in Swift 2.x- (oder sogar 1.x-) Projekten, der so aussieht:
// 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
}
}
Oder solche Dinge, um die Ausführung zu verzögern:
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(0.5 * Double(NSEC_PER_SEC))), dispatch_get_main_queue()) {
print("test")
}
Oder jegliche andere Verwendung der Grand Central Dispatch API ...
Nun, da ich mein Projekt in Xcode 8 (Beta) für Swift 3 geöffnet habe, erhalte ich alle möglichen Fehler. Einige von ihnen bieten an, meinen Code zu reparieren, aber nicht alle Korrekturen produzieren funktionierenden Code. Was mache ich dagegen?