Я работаю в проекте iOS, который сталкивается с проблемами доступа к значению UserDefaults
при включенной защите файлов. В сообществах Apple есть пара сообщений, касающихся UserDefaults
проблемы недоступности. Вот некоторые из обсуждений:
- UserDefault Получение NULL
- NSUserDefault потеряно
Это меня это очень расстраивает, поскольку мое приложение проверяло логическое значение ключа FirstTimeAppLaunched и основывалось на значении, которое он воссоздает db encryption password
для моей базы данных. Из-за вышеупомянутых проблем, когда UserDefault
становится недоступным, мое приложение заново создает новый пароль и в конечном итоге теряет все данные, ранее использовавшиеся пользователями с использованием другого пароля.
Теперь я думаю использовать целочисленное состояние, а не логическое, поэтому мне нужно использовать
UserDefaults.standard.register(["FirstTimeAppLaunched", 0]);
при запуске приложения. И после первого запуска я установил его на 1, используя
UserDefaults.standard.set(1, forKey: "FirstTimeAppLaunched");
. В этом случае мне нужно подтвердить около
, если стандарт UserDefault
недоступен из-за вышеизложенного В упомянутых проблемах гарантируется, что возвращаемое значение для ключа FirstTimeAppLaunched
будет NULL
или значение по умолчанию, которое я зарегистрировал с помощью метода UserDefaults.standard.register
?