У меня довольно простое приложение для iPhone, которое я делаю. Тем не менее, я не могу получить свои NSUserDefaults для постоянного сохранения. Запись и получение данных не является проблемой - я могу сохранить данные (в моем случае - строку) и получить их по команде, даже после переключения представлений, закрытия / открытия приложения и т. Д., И данные извлекаются просто хорошо. Похоже, что строка была правильно сохранена на ключ. Но когда я покидаю приложение из панели многозадачности и перезагружаю его, настройки больше не сохраняются, и приложение загружается, как в первый раз. Я начинающий программист, так что это, вероятно, просто глупая ошибка с моей стороны.
Вот как выглядит экономия:
if (optionsSoundBox.center.x >= 240)
{
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:.2];
self.soundOnLabel.alpha = 1;
self.soundOffLabel.alpha = 0;
[UIView commitAnimations];
NSUserDefaults *soundOptions = [NSUserDefaults standardUserDefaults];
[soundOptions setObject:@"SoundsON" forKey:@"SoundKey"];
[soundOptions synchronize];
}
if (optionsSoundBox.center.x < 240)
{
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:.2];
self.soundOnLabel.alpha = 0;
self.soundOffLabel.alpha = 1;
[UIView commitAnimations];
NSUserDefaults *soundOptions = [NSUserDefaults standardUserDefaults];
[soundOptions setObject:@"SoundsOFF" forKey:@"SoundKey"];
[soundOptions synchronize];
}
Я извлекаю строку в viewDidLoad, поэтому она будет готова при запуске, например:
NSUserDefaults *soundOptions = [NSUserDefaults standardUserDefaults];
NSString *savedSoundSettings = [soundOptions stringForKey:@"SoundKey"];
if (savedSoundSettings == @"SoundsON")
{
[optionsSoundBox setCenter:CGPointMake(280, optionsSoundBox.center.y)];
}
if (savedSoundSettings == @"SoundsOFF")
{
[optionsSoundBox setCenter:CGPointMake(200, optionsSoundBox.center.y)];
}
Я очень ценю любую помощь, которую вы можете оказать