Sobes.tech
Middle — Middle+

Tətbiqdə əsas axından kənar qrafik interfeys ilə əməliyyatlar etmək mümkündürmü?

sobes.tech Süni İntellekt

AI-dan cavab

iOS-də, qrafik interfeys əməliyyatlarının (UI) yalnız əsas axında (main thread) həyata keçirilməsi lazımdır. Bu, UIKit-in çox-axın təhlükəsiz olmaması və fon axınlarından UI-də hər hansı dəyişikliklərin proqnozlaşdırılmayan davranışlara və ya tətbiqin çökməsinə səbəb ola biləcəyi ilə əlaqədardır.

Əgər fon tapşırığını yerinə yetirdikdən sonra interfeysi yeniləmək lazımdırsa, məsələn, DispatchQueue.main.async istifadə edərək əsas axına qayıtmaq lazımdır:

DispatchQueue.global().async {
    // Fon tapşırığı
    let data = fetchData()
    
    DispatchQueue.main.async {
        // UI-ni yeniləyin
        self.label.text = data
    }
}