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
}
}