0

Я отправлял уведомления в NSNotficiationCenter каждый раз, когда мне нужно было выйти из закрытия, чтобы обновить интерфейс, но это начало немного утомительно и заставило меня задуматься, есть ли лучший способ. После быстрого поиска я обнаружил, что вы можете просто послать в главную очередь, как это:Лучший/самый распространенный способ обновления интерфейса от фоновой темы

dispatch_async(dispatch_get_main_queue()) { 
    // update some UI 
} 

Этот подход меньше кода наверняка, но мне интересно, если это улучшает читаемость. Итак, мой вопрос: что такое «путь» в Swift для обновления пользовательского интерфейса из фонового потока?

+0

Я не думаю, что есть «один путь» с этим (по крайней мере апи мудрой), но то, что вы показываете здесь довольно часто. Есть несколько помощников с открытым исходным кодом, которые завершают вызовы gcd и добавляют синтаксический сахар. [Вот один из них] (https://github.com/duemunk/Async) – Alladinian

+0

Это ПУСТЬ дешевле, чем уведомления, и многое другое ясно – PeejWeej

ответ

2

Это путь:

let priority = DISPATCH_QUEUE_PRIORITY_DEFAULT 
dispatch_async(dispatch_get_global_queue(priority, 0)) { 
    // do some background task 
    dispatch_async(dispatch_get_main_queue()) { 
     // update some UI 
    } 
} 
+0

, также учитывая, что этот способ дешевле, как @PEEJWEEJ сказал по моему вопросу, я буду пойдите с этим. – Fr4nc3sc0NL

Смежные вопросы