我想在本地数据库sqlite中存储一些信息,如果互联网断开连接,或者甚至应用程序终止时。你对这份工作有什么建议?如何识别这些事件?
***当应用程序终止时,不是应用程序即将终止
答案 0 :(得分:0)
Apple终止应用时不允许任何操作
您可以在应用终止之前完成您的操作。
UIApplicationDelegate
有一个委托方法 - applicationWillTerminate
,在您的应用即将终止时调用。
func applicationWillTerminate(_ application: UIApplication) {
// Called when the application is about to terminate.
}
您可以在此方法的块中设置存储信息/数据的代码
对于iOS 8+的Internet连接,您可以在Web服务API调用期间检查Internet连接状态。如果没有互联网连接,Web服务API响应将出现此错误。您可以在错误代码= -1005
时执行操作Error: Error Domain=NSURLErrorDomain Code=-1005 "The network connection was lost." UserInfo=0x7ba8e5b0 {NSErrorFailingURLStringKey=, _kCFStreamErrorCodeKey=57, NSErrorFailingURLKey=, NSLocalizedDescription=The network connection was lost., _kCFStreamErrorDomainKey=1, NSUnderlyingError=0x7a6957e0 "The network connection was lost."}
答案 1 :(得分:0)
当任何应用程序在终止之前终止时,它会进入后台模式很短的时间,以下方法将在App Delegate类中执行: -
optional func applicationDidEnterBackground(_ application: UIApplication)
您可以编写脚本以将数据保存在本地数据库中。 如果网络状态正在发生变化,您也可以使用Reachability 获取通知。