Stack Overflow на русском Asked by Kenton on November 22, 2021
Сейчас у меня есть несколько данных, которые я хочу сбрасывать каждый раз в 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()
}
}
Но данная функция у меня не работает. Данные ночью не сбрасываются. Подскажите, пожалуйста, в чем проблема?
вы сначала сохраняете строку, а ниже тут же сраниваете с ней, поэтому блок else
у вас никогда не выполняется
UserSettings.userDate = str
print(UserSettings.userDate!)
//если дата сходится, то выходим
if str == UserSettings.userDate {
return
}
по меньшей мере вам нужно убрать UserSettings.userDate = str
и инициализировать UserSettings.userDate
иначе
Answered by schmidt9 on November 22, 2021
Я что-то не пойму
let str = df.string(from: Date())
UserSettings.userDate = str
if str == UserSettings.userDate
какие ожидания на 3 й строчке? Думаю проблема во второй строке она не нужна или проверка перед присваиванием
Answered by Aziz Umarov on November 22, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP