2013-11-18 2 views
6

У меня есть приложение 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; 

Так, может что-то привести к тому, что пользовательские настройки по умолчанию будут сброшены/повреждены?

В целом, может быть, это связано с сообщением о сбое приложения, которое было сообщено, даже если сбой не является прямым результатом записи/чтения по умолчанию пользователя?

+0

Проводка некоторого кода будет полезна. –

+0

, пожалуйста, добавьте свой код здесь, тогда мы сможем понять. Это точно проблема. – Sport

+1

Я с радостью добавлю некоторый код, хотя это более общий вопрос относительно известных проблем при сбое NSUserDefaults при сбоях. Сам код такой же простой, как и он, но я все равно отправлю. – am1987

ответ

0

Из того, что я понимаю, оно удаляется только при удалении приложения. Поскольку ваша проблема с перезагрузкой NSUserDefaults предшествовала сбой приложения, я бы начал выяснять проблему сбоя.

-2

Если вы установите приложение на вашем устройстве NSUserDefault будет Re инициализируется снова ... когда-либо протестировать приложение в устройстве, которое будет подключить устройство с Xcode, и если вы запустите программу значения будут сброшены ...

+0

Неверно. Если вы удалите приложение, запустите его снова в Xcode, он будет повторно устанавливать и повторно инициализировать значения по умолчанию. Но если вы просто протестируете приложение снова без удаления, то значения по умолчанию будут сохранены. – peacetype

Смежные вопросы