WatchOS и когда ставить методы в основной поток
Похоже, что для расширений WatchOS, это чаще всего тот случай, когда код должен быть явно размещен в основном потоке, в отличие от явного помещения в фоновом режиме или другой очереди, как в IOS. Какие действия нужно явно указать в главном потоке в расширениях WatchOS? Я видел, что это делается при обновлении пользовательского интерфейса или при изменении состояния тренировки с помощью HealthKit.
Например, прежде чем я обновлю значения меток на своем контроллере представления интерфейса watchOS, я вызываю основную очередь:
func locationUpdate(locationDict: [String:AnyObject]) {
dispatch_async(dispatch_get_main_queue()) {
if let first = locationDict["firstValue"] as? String {
self.firstValue.setText(first)
}
if let second = locationDict["second"] as? String {
self.secondValue.setText(second)
}
}
Это обязательно? Я бы не стал делать это в iOS. Есть ли другие распространенные случаи? Есть ли хорошая рекомендация относительно специальных соображений основной очереди для WatchOS?