TransWikia.com

Как сбрасывать данные каждый раз в 12 ночи?

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()
    }
}

Но данная функция у меня не работает. Данные ночью не сбрасываются. Подскажите, пожалуйста, в чем проблема?

2 Answers

вы сначала сохраняете строку, а ниже тут же сраниваете с ней, поэтому блок 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

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP