У меня в приложении установлено несколько пользовательских настроек по умолчанию:
Снимки вкл. / Выкл. Советы по запуску ВКЛ. / ВЫКЛ. Игровая музыка ВКЛ. / ВЫКЛ. Музыка iPod ВКЛ. / ВЫКЛ. Звуковые эффекты ВКЛ. / ВЫКЛ.
Когда мое приложение входит в фоновый режим (в OS 4.0), мой метод saveDefaults: вызывается из метода applicationWillResignActive: (UIApplication *).
Затем в методе applicationWillEnterForeground: я загружаю свой методПользователь по умолчанию снова.Затем я вызываю метод, который запускает menuMusic, если он включен.
Используя довольно простой метод сохранения по умолчанию, который должен работать:
- (void)saveGameDefaults {
[[NSUserDefaults standardUserDefaults] setObject:(NSString *)myDoll.currentDoll forKey:@"DollName"];
[[NSUserDefaults standardUserDefaults] setInteger:[gameState intValue] forKey:@"GameState"];
[[NSUserDefaults standardUserDefaults] setInteger:[startScreen intValue] forKey:@"StartScreen"];
[[NSUserDefaults standardUserDefaults] setBool:snapShots forKey:@"SnapShots"];
[[NSUserDefaults standardUserDefaults] setBool:resetDolls forKey:@"Reset"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
Вот небольшая часть моего метода загрузки по умолчанию:
{
if ([[NSUserDefaults standardUserDefaults] objectForKey:@"GameState"] == nil) gameState = [NSNumber numberWithInt:MENU_VIEW];
else gameState = [[NSUserDefaults standardUserDefaults] objectForKey:@"GameState"];
if ([[NSUserDefaults standardUserDefaults] objectForKey:@"StartScreen"] == nil) startScreen = [NSNumber numberWithInt:SHOW_START_SCREEN];
else startScreen = [[NSUserDefaults standardUserDefaults] objectForKey:@"StartScreen"];
if ([[NSUserDefaults standardUserDefaults] objectForKey:@"GameSound"] == nil) gameSound = [NSNumber numberWithInt:SOUNDS_ON];
else gameSound = [[NSUserDefaults standardUserDefaults] objectForKey:@"GameSound"];
}
Кажется, настройки по умолчанию еще не обновлены и не доступны для приложения, когда оно возвращается из фона.Я отправляю его в фоновый режим, переключаясь прямо в настройки iPhone, меняя настройки, а затем переключаясь обратно, дважды нажав кнопку «Домой» и выбрав мое приложение.Но если я снова вернусь и вернусь, он прочитает новые установленные параметры.
Например: 1. У меня включена музыка, и я запускаю приложение.Музыка играет в меню.2. Дважды нажмите кнопку «Домой», выберите приложение «Настройки» и измените настройку «Музыка меню» на «НЕТ».3. Дважды нажмите кнопку «Домой» и вернитесь в игру.Музыка все еще играет.4. Дважды нажмите на дом снова и вернитесь в настройки приложения.Музыка меню по-прежнему установлена на NO.5. Вернитесь к моему приложению во второй раз, и теперь музыка больше не воспроизводится.
У кого-то еще есть проблемы с обновлением пользовательских настроек, когда приложение находится в фоновом режиме?
Спасибозаранее - марка