Как я могу отправить dispatch_sync, dispatch_async, dispatch_after и т. Д. В Swift 3, Swift 4 и далее?

У меня есть много кода в проектах Swift 2.x (или даже 1.x), который выглядит следующим образом:

// 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
    }
}

Или что-то вроде этого, чтобы задержать выполнение:

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(0.5 * Double(NSEC_PER_SEC))), dispatch_get_main_queue()) {
    print("test")
}

Или любое другое использование API Grand Central Dispatch ...

Теперь, когда я открыл свой проект в Xcode 8 (бета) для Swift 3, я получаю всевозможные ошибки. Некоторые из них предлагают исправить мой код, но не все исправления создают рабочий код. Что мне делать с этим?

Ответы на вопрос(6)

Ваш ответ на вопрос