2015-02-12 31 views
1

我正在开发一个可以播放多个流的广播播放器应用程序。这个应用程序有一个今天的扩展,它通过使用应用程序组“com.myname.myapp”共享用户默认的一些数据。现在,只要用户数据发生变化,我都会得到通知。更改可以来自包含应用程序和今天的扩展。我在容器应用程序中添加了一个观察者来观察NSUserDefaultDidChangeNotification。每当我做的应用程序本身的变化,但不是在同一个chages在扩展作出在今日扩展中更改时观察用户默认值

NSNotificationCenter *center = [NSNotificationCenter defaultCenter]; 
[center addObserver:self 
      selector:@selector(defaultsChanged:) 
       name:NSUserDefaultsDidChangeNotification 
      object:nil]; 

- (void)defaultsChanged:(NSNotification *)notification { 
    // do the needful 
} 

该方法被调用。

你有什么想法什么是错的,当扩展更改用户默认设置时,需要做些什么才能在包含应用程序中获得通知?不幸的是,没有直接告诉容器应用程序用户正在改变的东西。谢谢!

回答

0

当扩展更改用户默认设置时,无法在应用中获取该通知。它没有实现,所以没有办法做出这个通知发生。

您可以执行下列操作之一:

  • 在你的应用观察UIApplicationDidBecomeActiteNotification。每当该应用程序变为活动状态时,检查用户默认值以查看是否有任何更改。
  • 使用MMWormhole设置标志,以便您的扩展程序可以告诉您的应用程序用户默认设置已更改。