ios - 切换 NSPersistentStore 文件时的 Core Data 延迟

标签 ios core-data nsmanagedobjectcontext

我正在开发一个带有 Core Data 的应用程序,它会定期从网络服务下载所有数据。由于下载可能会失败或被用户取消,因此我希望能够回滚到之前的状态。我尝试撤消 NSManagedObjectContext ,但这似乎有点慢(我有数万个实体)。我现在正在做的是备份持久存储文件,下载数据,如果下载失败,则用备份替换存储文件。这似乎工作正常,除了在我可以从商店获取实体后似乎有延迟:如果下载后我立即转到使用 NSFetchedResultsControllerUITableView ,我发现它是空的。如果我等几秒钟,一切都会好的。

所以我的问题是:有人也遇到过这种延误吗?有什么办法可以避免这个问题,强制一切准备就绪,即使它阻塞了线程?

最佳答案

我没有使用过此设置,但我认为您看到的延迟可能是由于核心数据必须清除所有缓存造成的。核心数据使用如果您将缓存与获取的结果 Controller 一起使用,它将必须进行测试,然后删除其现有缓存。

我认为最好的办法是拆除核心数据堆栈并从头开始重新启动。这包括重新创建一个新获取的结果 Controller 。

关于ios - 切换 NSPersistentStore 文件时的 Core Data 延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6616236/

相关文章:

iphone - 检查 managedobjectcontext 是否为空?

ios - 保存上下文不会保留更新的 NSManagedObject

ios - 以编程方式更改为从右到左的 RTL

iphone - iOS:如何执行 HTTP POST 请求?

ios - '+ entityForName:nil不是搜索实体名称的合法NSManagedObjectContext参数

ios - 更改快照 animatedDifferences 值时如何处理不一致的行为?

ios - 设置新的核心数据实体属性值不保存。这与 RestKit 有什么关系吗?

ios - ios,Web View 中的Youtube全屏旋转

ios - MKMapView如何知道旋转角度?

sql - 如何在 SWIFT 的 IOS CORE-DATA 请求中使用 SQL GROUP BY 和 SUM 函数?