#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 не останавливается и продолжает выполняться до конечной точки