我正在开发一个可以播放几个流的无线电播放器应用程序。此应用程序具有今天的扩展,通过使用应用程序组" com.myname.myapp"在用户默认值上共享一些数据。现在,只要用户数据发生变化,我就会收到通知。更改可以来自包含应用和今天的扩展。我在容器应用程序中添加了一个观察者来观察NSUserDefaultDidChangeNotification
。
NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
[center addObserver:self
selector:@selector(defaultsChanged:)
name:NSUserDefaultsDidChangeNotification
object:nil];
- (void)defaultsChanged:(NSNotification *)notification {
// do the needful
}
只要我在应用程序本身进行更改,就会调用该方法,但在扩展程序中创建相同的chages时则不会。
您是否了解哪些内容出现问题?当扩展程序更改用户默认值时,需要采取哪些措施才能在包含应用中收到通知?不幸的是,没有直接的方法告诉容器应用程序用户正在改变某些东西。谢谢!
答案 0 :(得分:0)
当扩展程序更改用户默认值时,无法在应用程序中获取该通知。它没有实现,所以你无法做任何事情来发生通知。
您可以执行以下操作之一:
UIApplicationDidBecomeActiteNotification
。每当应用程序变为活动状态时,请检查用户默认值以查看是否有任何更改。