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