В моем приложении есть расписание смены тем на любое время, которое я могу выбрать.
Я написал два метода с помощью Timer ().
Где: 86400 один день в секундах и fromTimeInt : его текущая дата, котораяЯ выбрал.
func scheduleFrom() {
timerFrom?.invalidate()
timerFrom = nil
guard let fromTimeInt = fromTimeInt else { return }
timerFrom = Timer(fireAt: Date(timeIntervalSince1970: Double(fromTimeInt)), interval: 86400, target: self, selector: #selector(changeTheme), userInfo: nil, repeats: true)
if let timer = timerFrom {
RunLoop.main.add(timer, forMode: .common)
}
}
func scheduleTo() {
timerTo?.invalidate()
timerTo = nil
guard let toTimeInt = toTimeInt else { return }
timerTo = Timer(fireAt: Date(timeIntervalSince1970: Double(toTimeInt)), interval: 86400, target: self, selector: #selector(changeTheme), userInfo: nil, repeats: true)
if let timer = timerTo {
RunLoop.main.add(timer, forMode: .common)
}
}
Но это не работает для меня, потому что следующий день не начался и не изменил тему.Как это можно исправить?
Например, телеграмма приложения дизайна: