У меня есть UIButton
с двумя событиями.touchUpInside
и touchDown
.Кнопка используется для записи голоса, поэтому ее можно нажимать несколько раз подряд.Когда touchDown
произошло, он готовится и начинает запись, а когда touchUpInside
завершает запись.touchDown
команды выполняются в другом потоке:
DispatchQueue.global(qos: .userInteractive).async {
//prepare and start voice recording
}
touchUpInside
команды выполняются в основном потоке.Проблема в том, что у меня есть некоторые переменные, которые используются в обоих событиях (произошло состояние гонки).Например, перед подготовкой экземпляра регистратора внутри события touchDown
происходит событие touchUpInside
.Так как же контролировать состояние гонки?Я немного знаю о DispatchGroup, но я не могу справиться с этой ситуацией с ними.Спасибо за помощь.