Avatar ·

Cómo usar correctamente dispatch_sync, dispatch_async, dispatch_after y otras funciones de GCD en Swift 3, 4 y posteriores

¡Hola a todos! Estoy migrando de Objective-C a Swift y tengo confusión con Grand Central Dispatch (GCD) después del lanzamiento de Swift 3. Antes escribía algo como: ```swift dispatch_async(dispatch_get_main_queue(), { // actualización de UI }) ``` Pero ahora Xcode dice que esto es incorrecto. Entiendo que Apple cambió la API, pero no encuentro una explicación clara de cómo trabajar con GCD en Swift 3, 4 y posteriores. Necesito entender: 1. ¿Cómo ejecutar código de forma asíncrona en la cola principal (para actualizar la UI)? 2. ¿Cómo ejecutar código de forma síncrona (dispatch_sync) en una cola en segundo plano? 3. ¿Cómo hacer un retardo antes de la ejecución (dispatch_after)? 4. ¿Cómo crear mi propia cola? He intentado escribir así, pero no funciona: ```swift DispatchQueue.main.async { // código } DispatchQueue.global().sync { // código } ``` Por favor, explíquenle a un principiante en Swift cómo usar correctamente GCD en Swift moderno. Preferiblemente con ejemplos que pueda copiar y usar de inmediato.