2016-09-17 1 views
1

Пожалуйста, помогите мне, чтобы преобразовать эту строку в стремительной 3.0:Очереди и Swift 3 выпуск

dispatch_async(DispatchQueue.global(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0)) 

И что же это означает в точности? Что-то вроде: сделать код в скобках в главной очереди?

Заранее спасибо.

пс. Эта строка кода была взята из apple's code для работы с основными данными

ответ

7

В Swift 3 Вы можете написать как этот

DispatchQueue.global(qos: .background).async { 

} 

Это означает, что каждый код, написанный между кронштейном будет выполнять в фоновом режиме. и если вы хотите внести какие-либо изменения в этот фоновый поток, вам нужно переключиться на основной поток. написав блок ниже.

dispatch_async(dispatch_get_main_queue()) { 
    // Your code for UI Changes. 
} 

EDIT: Swift 3

DispatchQueue.main.async { 
} 
+0

'DispatchQueue.main.async {}' или 'DispatchQueue.main.sync {}'. Для главной очереди. – Zico

+0

'dispatch_async (DispatchQueue.global (DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0))' как насчет '0'? как я могу установить '0' –

2

Одним из наиболее распространенных задач в Grand Central Dispatch (GDC) модель выполняется работа по глобальной очереди фона и обновления пользовательского интерфейса на основной очереди, как только как это делается. Новый API выглядит следующим образом:

DispatchQueue.global(attributes: [.qosDefault]).async { 
    // Background thread 
    DispatchQueue.main.async(execute: { 
     // UI Updates 
    }) 
} 

Очереди теперь принимают атрибуты в init. Это Swift optionSet и может включать в себя параметры очереди, такие как опция последовательного и параллельного управления памятью и управления действиями и качество обслуживания (.default, .userInteractive, .userInitiated, .utility и .background).

Новые изменения:

  • DISPATCH_QUEUE_PRIORITY_HIGH: -> .userInitiated
  • DISPATCH_QUEUE_PRIORITY_DEFAULT: -> .default
  • DISPATCH_QUEUE_PRIORITY_LOW: -> .utility
  • DISPATCH_QUEUE_PRIORITY_BACKGROUND: -> .background

, если вы хотите узнать больше, это хороший разговор https://developer.apple.com/videos/play/wwdc2016/720/

+0

спасибо за помощь! –

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

  • Нет связанных вопросов^_^