我遇到了使用 iCloud 和 CoreData 的问题。当我在一台设备上更新我的核心数据数据库时,iCloud 会正确地将数据同步到我的第二台设备。
但是,假设我在更改核心数据之前让应用程序在两台设备上运行。我的第二台设备已经发出了 NSFetchRequest(可以说它称为 fetchRequest1)。在我的第二台设备上从 iCloud 导入成功后,再次从 fetchRequest1 调用相同的请求会返回我的所有新数据(插入的任何内容),但不包含对先前存在的实体的任何更新。
似乎有些东西被奇怪地缓存了,因为如果我关闭应用程序并重新打开它,一切都会正确显示。此外,如果我发出获取请求并遍历每个实体并在每个实体上调用 NSManagedObjectContext refreshObject 方法,那么数据就会显示出来!然而,这显然并不总是理想的,因为大型数据库无法处理这个问题。
有谁知道可能导致此问题的原因,或者刷新缓存以获取 NSManagedObjectContext 对象上的请求的方法?