Я пытаюсь поделиться некоторыми данными между моим приложением и расширением его уведомлений.Я устанавливаю группу приложений и использую NSUserDefaults для обмена данными.Он отлично работает в начале.Но потом я обнаружил, что когда я обновляю значение с A на B, расширение не получит обновленное значение, с точки зрения расширения значение остается равным A. Значение не обновляется, пока я не перезапущу свое приложение, это не так, как яожидал, что данные будут переданы.
Я попытался "синхронизировать" на NSUserDefaults. (Я знаю, что API устарел).Не работает.Я попытался использовать группу доступа цепочки для ключей и хранить данные с цепочкой для ключей.Но кажется, что элемент в связке ключей также не обновляется вовремя.
// save value in my app
- (void)onButtonClicked:(UIButton *)sender {
NSUserDefaults *groupUserDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"myAppGroup"];
[groupUserDefaults setObject:@"A" forKey:@"key"];
}
...
// read value from notification extension
- (void)didReceiveNotificationRequest:(UNNotificationRequest *)request withContentHandler:(void (^)(UNNotificationContent * _Nonnull))contentHandler {
NSUserDefaults *groupUserDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"myAppGroup"];
NSString *value = [groupUserDefaults stringForKey:@"key"];
// modify notification content
self.contentHandler(modifiedContent)
}
Мне нужно обмениваться данными между моим приложением и расширением уведомлений в режиме реального времени, за исключением синхронизации один раз за запуск (как я заметил).Очень нужен совет.