Sobes.tech
Middle — Middle+

Se pot realiza operații cu interfața grafică în afara thread-ului principal într-o aplicație?

sobes.tech AI

Răspuns de la AI

În iOS, toate operațiunile cu interfața grafică (UI) trebuie efectuate exclusiv în thread-ul principal (main thread). Acest lucru se datorează faptului că UIKit nu este sigur pentru thread-uri, iar orice modificare a UI-ului din thread-uri de fundal poate duce la comportament imprevizibil sau la blocarea aplicației.

Dacă este necesar să actualizați interfața după finalizarea unei sarcini de fundal, trebuie să reveniți pe thread-ul principal, de exemplu, folosind DispatchQueue.main.async:

DispatchQueue.global().async {
    // Sarcină de fundal
    let data = fetchData()
    
    DispatchQueue.main.async {
        // Actualizare UI
        self.label.text = data
    }
}