我遇到一种情况,当设备收到推送通知时,我会发送NSURLSession
和NSURLConnection
组合。关于NSURLSession
我有几个问题。
如果失去互联网连接,NSURLSession's
数据任务会在后台自动恢复吗?
如果最初没有互联网,NSURLSession
是否会自动尝试完成任务,或者会话只是返回错误?
最佳答案
看起来该由您来处理重试了。
完成任何任务后,NSURLSession对象将调用委托的
URLSession:task:didCompleteWithError:方法出现错误
对象,如果任务成功完成,则返回nil。如果任务是
可恢复的下载任务,NSError对象的userInfo字典
包含NSURLSessionDownloadTaskResumeData键的值。你的
应用应使用可达性API来确定何时重试,以及
然后应调用downloadTaskWithResumeData:或
downloadTaskWithResumeData:completionHandler:创建新的下载
继续下载的任务。转到步骤3(创建和恢复
任务对象)。
https://developer.apple.com/library/ios/documentation/cocoa/Conceptual/URLLoadingSystem/NSURLSessionConcepts/NSURLSessionConcepts.html