Sobes.tech
Middle — Middle+

Kun je operaties met de grafische interface buiten de hoofdthread in een applicatie uitvoeren?

sobes.tech AI

Antwoord van AI

In iOS moeten alle operaties met de grafische gebruikersinterface (UI) uitsluitend worden uitgevoerd op de hoofdthread (main thread). Dit komt doordat UIKit niet thread-safe is, en elke wijziging van de UI vanuit achtergrondthreads kan leiden tot onvoorspelbaar gedrag of crashes van de applicatie.

Als het nodig is om de interface bij te werken na het uitvoeren van een achtergrondtaak, moet je terugkeren naar de hoofdthread, bijvoorbeeld door DispatchQueue.main.async te gebruiken:

DispatchQueue.global().async {
    // Achtergrondtaak
    let data = fetchData()
    
    DispatchQueue.main.async {
        // UI bijwerken
        self.label.text = data
    }
}