У меня следующая проблема:
Я создал расширение «Сегодня», которое содержит файл UISwitch
. IBAction этого переключателя в Today Extension должен сохранять состояние включения, используя NSUserDefaults
с initWithSuite следующим образом:
- (IBAction)switchStateChanged:(id)sender {
BOOL isOn = self.preferenceSwitch.isOn;
NSUserDefaults *sharedDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.x.TodayExtensionSharingDefaults"];
[sharedDefaults setBool: isOn forKey: @"SwitchState"];
[sharedDefaults synchronize];
}
Теперь в моем содержащем приложении я знаю, что могу получить доступ к состоянию переключателя, используя это:
NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.x.TodayExtensionSharingDefaults"];
BOOL value = [defaults boolForKey:@"SwitchState"];
Я ищу решение, которое дает мне обратный вызов в моем основном содержащем приложении, когда значение переключателя изменяется.
В этом решении я должен установить NSTimer
, который обновляет пользовательские значения по умолчанию, например, каждые 200 мс.
Есть ли какое-либо решение путем добавления наблюдателя к общим значениям по умолчанию?