我已经构建了一个与 Sql-lite 数据库集成的应用程序,该应用程序按预期工作,但是当我从设备终止应用程序时,数据库文件被删除并且应用程序丢失了所有需要的数据!
我很感激有关终止应用程序后可以用来保存数据库文件的方法的任何帮助。
在AppDelegate.m中关闭您的应用程序之前,尝试显式调用以保存您的数据。这应该可以解决您的问题。
- (void)applicationWillTerminate:(UIApplication *)application
{
// Saves changes in the application's managed object context before the application terminates.
if (managedObjectContext != nil)
{
if ([managedObjectContext hasChanges] && ![managedObjectContext save:&error])
{
// manage db save error
}
}
}
如果保存时间超过 5 秒(例如,因为要保留的行太多,或复杂的数据库结构),请不要,那么您可以使用beginBackgroundTaskWithExpirationHandler从不同线程中的 ios 请求后台执行时间以保存您的数据。