你如何清除NSManagedObjectContext缓存?

时间:2013-02-15 19:47:39

标签: core-data icloud nsfetchrequest

我遇到了一个问题,我正在使用iCloud和CoreData。当我在一台设备上更新我的核心数据库时,iCloud会正确地将数据同步到我的第二台设备。

但是,假设我在核心数据更改之前在两台设备上运行了应用程序。我的第二个设备已经发出NSFetchRequest(假设它叫做fetchRequest1)。在我的第二台设备上从iCloud导入成功后,再次从fetchRequest1调用相同的请求将返回我的所有新数据(插入的任何内容),但不包含以前存在的实体的任何更新。

似乎有些东西被缓慢地缓存,因为如果我关闭应用程序并重新打开它,一切都会正确显示。另外,如果我进行获取请求并循环遍历每个实体并在每个实体上调用NSManagedObjectContext refreshObject方法,那么数据就会显示出来!然而,这显然并不总是理想的,因为大型数据库无法处理这个问题。

是否有人知道可能导致此问题的原因,或者为NSManagedObjectContext对象上的提取请求刷新缓存的方法?

0 个答案:

没有答案