我在核心数据中逐个填充多个实体中的数千条记录。这个过程需要时间来完成。当应用处于活动状态时,此过程正常工作。一旦应用程序进入后台并进入前台,应用程序就会崩溃并出现以下错误:
"未能及时恢复ios崩溃"
请提出一些解决方案。
由于
答案 0 :(得分:0)
永远不应该在 - applicationDidFinishLaunching
中创建核心数据堆栈。如果需要迁移,只需告知用户有关它,但您需要从 - applicationDidFinishLaunching
...返回尽可能快,您应该只在此方法中创建UI元素。此时您不应该访问Core Data。
答案 1 :(得分:0)
您不应该在主线程上执行非常耗时的任务。崩溃是由于填充过程需要10秒以上。它曾经发生在无限循环中。
为此任务启动一个新线程,当您的应用再次进入前台时,该线程将恢复。告诉用户发生了什么,即应用程序正在填充数据库并且可能需要一些时间。显示进度指示器也是一个好主意。 只要用户了解情况,他就会接受耐心等待。