Comment exécuter correctement du code dans un thread d'arrière-plan en Swift (Grand Central Dispatch) ?
Bonjour à tous ! Je suis débutant en développement iOS avec Swift et j'ai un problème avec le multithreading. J'ai une application qui télécharge des images depuis Internet. Quand j'appelle la fonction de téléchargement sur le thread principal, l'interface se bloque pendant quelques secondes — le scroll de la table ralentit, les animations disparaissent. Je comprends qu'il faut déplacer les opérations lourdes (requêtes réseau, traitement de données) vers un thread d'arrière-plan, mais je ne sais pas comment faire correctement.
Voici un exemple de mon code :
```swift
func loadImage(from urlString: String) -> UIImage? {
guard let url = URL(string: urlString) else { return nil }
do {
let data = try Data(contentsOf: url)
return UIImage(data: data)
} catch {
print("Error loading image: \(error)")
return nil
}
}
// Utilisation dans viewDidLoad
override func viewDidLoad() {
super.viewDidLoad()
let image = loadImage(from: "https://example.com/large-image.jpg")
imageView.image = image
}
```
J'ai entendu parler de Di