确保 'Today' 扩展已从 Core Data 更新信息

Ensuring 'Today' extension has updated information from Core Data

我有一个应用程序和一个今天的扩展,它们使用安全组标识符共享核心数据持久存储。

主应用程序更新核心数据存储,而扩展仅从存储中读取。

我在应用程序和扩展程序中都使用 NSFetchedResultsController 来检索对象。

这基本上是有效的,除了当主应用程序将新对象添加到商店时,它们不会立即对扩展程序可见。同样,扩展程序仍然可以在主应用程序删除对象后看到它们。

终止应用程序(从任务切换器向上滑动)会导致扩展立即看到更改的数据。

如何确保扩展始终看到更新?

我发现解决方案是从 today 扩展中的 NSFetchedResultsController 中删除缓存数据。我在设置 NSFetchedResultsController

的代码中添加了以下行
 [NSFetchedResultsController deleteCacheWithName:self.fetchedResultsController.cacheName];