После завершения регистрации я устанавливаю флаг в UserDefaults:
Код: Выделить всё
UserDefaults.standard.set(true, forKey: "hasCompletedOnboarding")
print("hasCompletedOnboarding:", UserDefaults.standard.bool(forKey: "hasCompletedOnboarding"))
В моем SceneDelegate я проверяю флаг следующим образом:
Код: Выделить всё
let hasCompletedOnboarding = UserDefaults.standard.bool(forKey: "hasCompletedOnboarding")
Проблема:
Если я подожду около 10 секунд, принудительно закрою приложение и снова открою его, hasCompletedOnboarding выведет false в SceneDelegate, и онбординг отобразится снова, хотя я подтвердил, что он был сохранен как true перед закрытием приложения.
Итак UserDefaults правильно сохраняется во время регистрации, но после перезапуска возвращает false.
Что может быть причиной этого? Я что-то упускаю из того, как UserDefaults работает со SceneDelegate или жизненным циклом приложения? Любые идеи и советы приветствуются.
Подробнее здесь: https://stackoverflow.com/questions/798 ... -its-value
Мобильная версия