Avatar ·

Cómo ejecutar tareas correctamente en un hilo de fondo en Swift (Grand Central Dispatch)

¡Hola a todos! Soy nuevo en Swift y desarrollo iOS. Estoy escribiendo una aplicación simple para descargar imágenes de internet. Cuando presiono el botón "Descargar", la interfaz se congela durante unos segundos hasta que aparece la imagen. He oído que debo usar hilos de fondo para no bloquear el hilo principal (UI). Pero no entiendo cómo hacerlo correctamente en Swift. Aquí está mi código actual: ```swift import UIKit class ViewController: UIViewController { @IBOutlet weak var imageView: UIImageView! @IBAction func loadImageTapped(_ sender: UIButton) { // Problema: este código se ejecuta en el hilo principal let url = URL(string: "https://example.com/large-image.jpg")! let data = try! Data(contentsOf: url) imageView.image = UIImage(data: data) } } ``` He intentado usar `DispatchQueue.global().async`, pero después de eso la imagen no se actualiza. Por favor, indíquenme cómo organizar correctamente la descarga de datos en segundo plano y luego actualizar la UI. ¿Y qué es exactamente el Main Thread?