Получатели UserDefaults вернут nil, если он не установлен, поэтому вам не нужно устанавливать bool, просто проверьте, установлено ли значение следующим образом:
if let username = UserDefaults.standard.string(forKey:"username") {
// user has created username, and username has the unwrapped value in it
} else {
// go to set username screen
}
Убедитесь, что послеперейдите к экрану установки имени пользователя и задайте ключ имени пользователя в UserDefaults:
UserDefaults.standard.string(value, forKey:"username")
Где value
- это введенное значение.
Если вы хотите сбросить значение в UserDefaults(т.е. они выходят из системы) используют функцию removeObject:
UserDefaults.standard.removeObject(forKey:"username")
Это сделает так, что UserDefaults.standard.string(forKey:"username")
вернет nil
снова.
Добавление bool для проверки просто сделает одинбольше винтиков, которые могут все испортить, если вы забудете установить его ...