Как сбрасывать данные каждый раз в 12 ночи?
Сейчас у меня есть несколько данных, которые я хочу сбрасывать каждый раз в 12 ночи. Я следовал идее сравнивать текущую дату с датой у пользователя. Написал следующую функцию:
func resetDataEveryNight() {
let df = DateFormatter()
df.dateFormat = "dd/MM/yyyy"
let str = df.string(from: Date())
//сохраняю дату в UserDefaults
UserSettings.userDate = str
print(UserSettings.userDate!)
//если дата сходится, то выходим
if str == UserSettings.userDate {
return
} else {
//если нет, то сбрасываем данные ниже
UserSettings.userDate = str
currentValue.text = "0"
resultValue.text = UserSettings.result
progressBar.progressLayer.strokeEnd = 0.0
addedDrinksArray.removeAll()
}
}
Но данная функция у меня не работает. Данные ночью не сбрасываются. Подскажите, пожалуйста, в чем проблема?
Ответы (2 шт):
Автор решения: Aziz Umarov
→ Ссылка
Я что-то не пойму
let str = df.string(from: Date())
UserSettings.userDate = str
if str == UserSettings.userDate
какие ожидания на 3 й строчке? Думаю проблема во второй строке она не нужна или проверка перед присваиванием
Автор решения: schmidt9
→ Ссылка
вы сначала сохраняете строку, а ниже тут же сраниваете с ней, поэтому блок else у вас никогда не выполняется
UserSettings.userDate = str
print(UserSettings.userDate!)
//если дата сходится, то выходим
if str == UserSettings.userDate {
return
}
по меньшей мере вам нужно убрать UserSettings.userDate = str и инициализировать UserSettings.userDate иначе