我已经查看了有关在后台执行核心数据保存的问题的答案,但我发现没有一个直接解决了以下情况:
我已经设置了核心数据,这样当我的应用程序第一次启动时,核心数据会从 plist 中填充,然后保存到持久存储中(全部在后台线程上)。在此期间,应用程序会显示一个带有动画活动指示器的“请稍候”弹出窗口。这似乎工作得很好,并且通常即使用户在填充期间点击主页按钮,应用程序也会完成填充,将应用程序推到后台。但是,该应用程序可能会在此人口完成之前完全终止(我已经成功地通过点击主页,双击主页并从多任务托盘中删除应用程序非常非常快)。在这种情况下,应用程序退出而不将数据保存到商店。在应用程序的下一次启动时,应用程序识别出商店已经存在,因此它不会填充,从而给用户留下一个完全空的数据库。所以问题是/是:
如果人口尚未完成,有没有办法在应用程序终止时完全删除商店?我尝试执行此操作,
-applicationWillTerminate:
但似乎无法正确识别应用程序是否正在填充。或者,是否有更好的方法来识别商店何时需要人口?例如,我可以在启动时确定商店是否是空的吗?