Sobes.tech
Middle — Middle+

Могу ли обављати операције са графичким интерфејсом ван главног тока у апликацији?

sobes.tech АИ

Одговор од АИ

У iOS, све операције са графичким интерфејсом (UI) треба извршавати искључиво у главном току (main thread). Ово је због тога што UIKit није безбедан за тхредове, и било какве промене UI-а из позадинских тхредова могу довести до непредвидивог понашања или падова апликације.

Ако је потребно ажурирати интерфејс након извршавања позадинског задатка, треба се вратити на главни тред, на пример, коришћењем DispatchQueue.main.async:

DispatchQueue.global().async {
    // Позадински задатак
    let data = fetchData()
    
    DispatchQueue.main.async {
        // Ажурирање UI
        self.label.text = data
    }
}