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