Самый безболезненный способ добиться этого, я думаю, это использовать NSTimer , установленный для повтора. Когда вам нужно остановить / приостановить его, просто отключите таймер. Если вы хотите запустить его, просто заново инициализируйте его. Используя этот метод, вы можете безболезненно контролировать время стрельбы с задержкой, а также легко настраивать интервал.
Кроме того, имейте в виду, что вы можете потенциально заблокировать все взаимодействия с пользовательским интерфейсом, когда спите в потоке. Это может означать, что вы не можете воспроизводить / приостанавливать, когда поток спит, поскольку во время сна обработка цикла не выполняется. Подробнее см. NSThread .