Передача различных параметров таймеру Swift каждый раз, когда он запускается - PullRequest
0 голосов
/ 13 июля 2020

У меня есть несколько запросов HTTP GET, которые нужно запланировать каждые 100 мс.

Похоже, что использование Timer + LoopRun - хорошее решение. Однако каждый раз, когда таймер запускается, переданный ему параметр отличается.

Я знаю, как передать тот же параметр (например, https://www.hackingwithswift.com/articles/117/the-ultimate-guide-to-timer), но я не нахожу ответ в сценарии, где при каждом срабатывании таймера передается другой параметр.

1 Ответ

1 голос
/ 13 июля 2020

Я понял с подсказкой из канала iOS резерва.

используйте счетчик внутри вашего селектора, который служит индексом для моего массива параметров. при изменении счетчика он будет указывать на следующий элемент в массиве параметров. Я могу получить доступ к следующему параметру в моем селекторе. Вот код

@objc func timedSearch(timer:Timer){
    if searchCnt == flightCandidates?.count { // stop timer
        timer.invalidate()
        return
    }
    let flight = flightCandidates![searchCnt]
        flightSearch(flightCandidate: flight)
    searchCnt += 1
}
...