Наблюдение за пользовательскими значениями по умолчанию при изменении в сегодняшнем расширении

Я разрабатываю приложение для радиоплеера, которое может воспроизводить пару потоков. Это приложение имеет сегодняшнее расширение, которое использует некоторые данные по умолчанию для пользователей с помощью группы приложений «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
}

Этот метод вызывается всякий раз, когда я вношу изменения в само приложение, но не тогда, когда те же изменения были внесены в расширение.

Есть ли у вас идеи, что идет не так и что нужно сделать, чтобы получить уведомление в содержащем приложении, когда расширение изменяет пользовательские настройки по умолчанию? К сожалению, нет прямого способа сообщить приложению-контейнеру, что пользователь что-то изменил. Спасибо!


person Thomas    schedule 12.02.2015    source источник


Ответы (1)


Невозможно получить это уведомление в приложении, когда расширение изменяет пользовательские настройки по умолчанию. Это не реализовано, поэтому вы ничего не можете сделать, чтобы это уведомление появилось.

Вы можете сделать одно из следующих действий:

  • Соблюдайте UIApplicationDidBecomeActiteNotification в своем приложении. Всякий раз, когда приложение становится активным, проверяйте пользовательские настройки по умолчанию, чтобы узнать, не изменилось ли что-нибудь.
  • Используйте MMWormhole, чтобы установить флаг, чтобы ваше расширение могло сообщать приложению об изменении пользовательских настроек по умолчанию.
person Tom Harrington    schedule 12.02.2015