У меня есть приложение ios, и в последнее время я получаю сообщения от пользователей об их настройках, которые будут сброшены. Настройки сохраняются с использованием NSUserDefaults
.NSUserDefaults сбрасывается
Вопрос, может ли пользователь по умолчанию получить коррумпированный/сброс по какой-то причине?
Несколько замечаний о том, как я использую его:
Когда я начинаю мое приложение, я храню значения по умолчанию, только если ключи не существует, при помощи
registerDefaults
(это делается, чтобы заботиться о " первой установки ").В большинстве вышеперечисленных отчетов описывается сбой приложения, а затем, когда он снова открывается, настройки сбрасываются до значения по умолчанию.
- Мое использование
NSUserDefaults
довольно простое - экономияnumbers/strings
, чтение их иногда и т. Д. Ничего особенного. Я не удаляю ключи.
Некоторые примеры кода:
Например, я сохранить данные в разных местах с помощью:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@"FirstLevel" forKey:@"Level"];
[defaults setInteger:100 forKey:@"Score"];
[defaults synchronize];
Я читать с помощью:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
int intValue = [defaults integerForKey:@"Score"];
return intValue;
Так, может что-то привести к тому, что пользовательские настройки по умолчанию будут сброшены/повреждены?
В целом, может быть, это связано с сообщением о сбое приложения, которое было сообщено, даже если сбой не является прямым результатом записи/чтения по умолчанию пользователя?
Проводка некоторого кода будет полезна. –
, пожалуйста, добавьте свой код здесь, тогда мы сможем понять. Это точно проблема. – Sport
Я с радостью добавлю некоторый код, хотя это более общий вопрос относительно известных проблем при сбое NSUserDefaults при сбоях. Сам код такой же простой, как и он, но я все равно отправлю. – am1987