我正在尝试在应用扩展程序和我的容器应用程序之间共享数据。我在容器应用程序中设置了一个应用程序组,并在我的应用程序扩展中引用了它。
当我的应用程序扩展被访问时,我将一个对象保存到 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");
}
但是,如果我的容器应用程序被发送到后台,则永远不会调用此通知 - 所以我无法知道用户默认值何时更改。
如何获取容器应用程序中的信息(为了在内部更新)?