Я пытаюсь обмениваться данными между расширением приложения и моим контейнерным приложением. Я настроил группу приложений в приложении-контейнере и сослался на нее в своем расширении приложения.
Когда к моему расширению приложения обращаются, я сохраняю объект в NSUserDefaults
//in the app extension
-(void)viewDidLoad {
NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.mygroup.com"];
[defaults setObject:[NSDate date] forKey:@"Date"];
[defaults synchronize];
}
а в приложении-контейнере - когда он запускается, я настраиваю наблюдателя:
// in the container app
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(userDefaultChanged:) name:NSUserDefaultsDidChangeNotification object:nil];
}
-(void)userDefaultChanged:(NSNotification *)note
{
NSLog(@"Changed");
}
Но если мое контейнерное приложение было отправлено в фоновый режим, это уведомление никогда не вызывается, поэтому я не могу узнать, когда было изменено пользовательское значение по умолчанию.
Как я могу получить информацию в приложении-контейнере (для внутреннего обновления)?