Middle — Middle+
Կարող են արդյոք գրաֆիկական ինտերֆեյսի հետ գործառույթներ կատարել ծրագրում գլխավոր հոսքից դուրս?
sobes.tech AI
Պատասխան AI-ից
iOS-ում, բոլոր գրաֆիկայի ինտերֆեյսի (UI) գործառույթները պետք է կատարվեն բացառապես գլխավոր թելում (main thread): Դա կապված է այն բանի հետ, որ UIKit-ը չի ապահովում թելային անվտանգություն, և ցանկացած UI փոփոխություն ֆոնային թելերից կարող է հանգեցնել անսպասելի վարքագծի կամ հավելվածի կոտրվելու:
Եթե անհրաժեշտ է թարմացնել ինտերֆեյսը ֆոնային գործառույթի ավարտից հետո, պետք է վերադառնալ գլխավոր թել, օրինակ՝ օգտագործելով DispatchQueue.main.async:
DispatchQueue.global().async {
// Ֆոնային գործառույթ
let data = fetchData()
DispatchQueue.main.async {
// UI թարմացում
self.label.text = data
}
}