Core Data+iCloud,更改通知插入和删除关系中的对象,但不更新关系中现有实体的属性



在我的核心数据模型中,我有一个实体,它与另一种类型的实体具有多对多关系(未排序)。我还使用iCloud同步与我的应用程序。

现在,当我在该关系中添加或删除对象时,更改会反映在运行该应用程序的其他设备上(对象显示或消失)。

但是,当我只是更新该关系中对象的属性时,实体不会更新。我仍然可以从我的 NSLog 语句中看到 NSPersistentStoreDidImportUbiquitousContentChangesNotification 被识别,但实体没有得到更新。

但是,当我关闭应用程序,然后将其从多任务栏中删除并重新启动应用程序(并且iCloud商店完成加载)时,我现在可以看到表中的更改。

我对导致这种情况的原因感到非常困惑,我需要在导入更改后立即反映它们。知道这里发生了什么吗?

您必须将

托管对象上下文的过期间隔设置为足够低的间隔(我将其设置为 0.0)才能正常工作。否则,核心数据将改用缓存的值。

最新更新