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

Posted

技术标签:

【中文标题】Core Data + iCloud,更改通知插入和删除关系中的对象但不更新关系中现有实体的属性【英文标题】:Core Data+iCloud, change notification inserts and deletes objects in relationships BUT does not update attributes of existing entities in relationship 【发布时间】:2012-09-30 21:33:09 【问题描述】:

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

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

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

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

我对造成这种情况的原因感到非常困惑,我需要在导入更改后立即反映出来。有什么想法吗?

【问题讨论】:

【参考方案1】:

您必须将托管对象上下文的陈旧间隔设置为足够低的值(我将其设置为 0.0)才能使其正常工作。否则,Core Data 会使用缓存的值。

【讨论】:

完美 - 在找到这个非常简单的答案之前,我查看了很多地方。谢谢!

以上是关于Core Data + iCloud,更改通知插入和删除关系中的对象但不更新关系中现有实体的属性的主要内容,如果未能解决你的问题,请参考以下文章

在重新加载文档之前,如何在 OS X 上的 iCloud 中检测对 Core Data 文档的更改?

iCloud、Core Data、迁移和模型映射

iCloud、Core Data 和副本以及如何播种初始数据?

iOS、Core Data 和 iCloud - 切换上下文

iPhone 和 Apple Watch 应用之间的 Core Data SQLite 存储更改通知

Core Data 和 iCloud 出错