1

我正在开发一个可以播放几个流的广播播放器应用程序。这个应用程序有一个今天的扩展程序,它通过使用应用程序组“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
}

每当我在应用程序本身中进行更改时都会调用该方法,但不会在扩展程序中进行相同的更改时调用。

当扩展程序更改用户默认值时,您是否知道出了什么问题以及需要做什么才能在包含的应用程序中获得通知?不幸的是,没有直接的方法可以告诉容器应用程序用户正在更改某些内容。谢谢!

4

1 回答 1

0

当扩展程序更改用户默认值时,无法在应用程序中获取该通知。它尚未实现,因此您无法采取任何措施来实现该通知。

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

  • 在您的应用程序中观察UIApplicationDidBecomeActiteNotification。每当应用程序变为活动状态时,检查用户默认设置以查看是否有任何更改。
  • 使用MMWormhole设置一个标志,以便您的扩展程序可以告诉您的应用程序用户默认值已更改。
于 2015-02-12T17:14:20.930 回答