Sobes.tech
Middle — Middle+

Peut-on effectuer des opérations avec l'interface graphique en dehors du thread principal dans une application?

sobes.tech IA

Réponse de l'IA

Dans iOS, toutes les opérations sur l'interface graphique (UI) doivent être effectuées exclusivement dans le thread principal (main thread). Cela est dû au fait que UIKit n'est pas thread-safe, et toute modification de l'UI depuis des threads en arrière-plan peut entraîner un comportement imprévisible ou des plantages.

Si vous devez mettre à jour l'interface après une tâche en arrière-plan, vous devez revenir au thread principal, par exemple en utilisant DispatchQueue.main.async:

DispatchQueue.global().async {
    // Tâche en arrière-plan
    let data = fetchData()
    
    DispatchQueue.main.async {
        // Mise à jour de l'UI
        self.label.text = data
    }
}