Запуск метода во время хранения в массиве с использованием NSTimer

#ios #nsarray #nstimer #nstimeinterval

#iOS #nsarray #nstimer #nstimeinterval

Вопрос:

У меня есть массив, в котором хранятся времена. Я хочу, чтобы NSTimer запускался во время хранения в этом массиве. Например, в массиве a[] у меня есть 2, 5 и 10 секунд, и я хочу, чтобы NSTimer запускал метод в это время. У меня есть другой NSTimer, который продолжает обновлять переменную экземпляра time каждую секунду.

Ответ №1:

Простым решением было бы перебирать ваш массив и планировать вызовы методов с помощью GCD

 for (NSNumber *time in array) {
    NSTimeInterval delay = [time doubleValue];
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delay * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            <#code to be executed after a specified delay#>
        });
}
  

Комментарии:

1. Что мне делать, если мои времена указаны в миллисекундах, и если мне нужно приостановить массив, а также выполнить чтение из разных точек массива. Потому что цикл for не останавливается и продолжает выполняться до конечной точки