Я использую расширение уведомлений в своем приложении для изменения звука уведомлений.
Когда пользователь выключает UISwitch
на странице настроек, я сохраняю в NSUserDefaults
a boolean
для отслеживания состояния.
Однако у меня есть 2 разные раскадровки длядва разных языка, каждый из которых имеет свой собственный стиль.
Когда я использую раскадровку A и печатаю состояние boolean
в консоли, оно печатает это состояние правильно.Но когда я меняю язык, значит, загружается другая раскадровка B.boolean
всегда возвращает false
.
Хотя логическое значение всегда возвращает false
, я проверил звук уведомления, оно работает правильно.
Любая идея, почему boolean
всегда возвращается false
?Мне нужно правильное значение, чтобы правильно отобразить состояние мелодии звонка на странице настроек.
Вот код, который я использую:
- (void)setPlayDefaultSound:(BOOL)playDefaultSound
{
NSUserDefaults *def = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.xx.xxx.NotificationServices"];
[def setBool:playDefaultSound forKey:@"playDefaultSound"];
[def synchronize];
}
- (BOOL)playDefaultSound
{
NSUserDefaults *def = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.xx.xxx.NotificationServices"];
return [def boolForKey:@"playDefaultSound"];
}
А вот скриншот информации.лист расширения услуг по уведомлению: