[Новое в Swift] Я создаю приложение на Swift 5, которое отображает время, оставшееся до запуска моей следующей задачи.
Мое приложение:
Задача 1: Запуск в 9.30
Задание 2: начало в 10.15
Допустим, текущее время: 09.00
Обратный отсчет: время до начала следующего задания = 00 : 30: 02 -> 00:30:01 ...
Я бы хотел отобразить обратный отсчет ближайшего задания.
В настоящее время у меня может быть только один таймер обратного отсчета на моем viewonLoad (), который берет текущий отсчет. Он продолжается и после его завершения он не запускается в следующий таймер после его завершения. Я понимаю, что мне придется иметь дело с фоновым состоянием на более позднем этапе, но так как я медленно начинаю. Моя идея состоит в том, чтобы убедиться, что я смогу запустить следующий таймер обратного отсчета после истечения срока действия моего текущего.
Так что в любой момент, когда я открываю свое приложение, оно всегда будет отображать обратный отсчет до моего следующего задания.
var count = 30 // calculation simplified ... this data is calc from two different date obj
override func viewDidLoad() {
super.viewDidLoad()
timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(update), userInfo: nil, repeats: true)
}
@objc func update() {
if(count > 0) {
count = count - 1
countdownLabel.text = String(count)
}else{
timer!.invalidate()
getNextTaskTimes()
}
}
func getNextTaskTimes(){
count = 5 // not working
}
Как мне этого добиться, пожалуйста? Кроме того, есть ли лучший способ сделать это? Учитывая, что мой пользователь может закрыть приложение и вернуться позже, я все же хотел бы, чтобы мой обратный отсчет продолжался в фоновом режиме.
Любая помощь приветствуется. : D Спасибо