Sobes.tech
Middle — Middle+

Végre lehet hajtani grafikus felülettel kapcsolatos műveleteket a fő szálon kívül egy alkalmazásban?

sobes.tech MI

Válasz az MI-től

iOS-ben minden grafikus felhasználói felülettel (UI) kapcsolatos művelet kizárólag a fő szálon (main thread) hajtandó végre. Ennek oka, hogy a UIKit nem szálbiztos, és bármilyen UI-változtatás háttérszálakról előre nem látható viselkedést vagy alkalmazás összeomlását okozhatja.

Ha szükséges a felület frissítése háttérfeladat végrehajtása után, akkor vissza kell térni a fő szálra, például a DispatchQueue.main.async használatával:

DispatchQueue.global().async {
    // Háttérfeladat
    let data = fetchData()
    
    DispatchQueue.main.async {
        // UI frissítése
        self.label.text = data
    }
}