我有一个具有核心数据数据库的主应用程序。我在主上下文中执行应用程序的所有活动,但我创建了一个子上下文来处理可能向数据库添加多达 30,000 条记录的后台同步。一切正常,后台同步不会减慢主应用程序的速度,直到它实际保存上下文,然后应用程序在 Core Data 将记录写入磁盘时无响应几秒钟。
有什么办法可以解决这个问题,以便大磁盘保存不会影响 UI?
我有一个具有核心数据数据库的主应用程序。我在主上下文中执行应用程序的所有活动,但我创建了一个子上下文来处理可能向数据库添加多达 30,000 条记录的后台同步。一切正常,后台同步不会减慢主应用程序的速度,直到它实际保存上下文,然后应用程序在 Core Data 将记录写入磁盘时无响应几秒钟。
有什么办法可以解决这个问题,以便大磁盘保存不会影响 UI?
您可以阅读此链接以了解有关在后台保存核心数据记录的更多信息。本质上,您的主要上下文是进行实际写作的背景上下文的子上下文。这样,您的主线程就不会被阻塞以将内容写入磁盘。但是,当从后台上下文合并/导入更改时,它可能会被暂时阻止。