我遇到一种情况,当设备收到推送通知时,我会发送NSURLSessionNSURLConnection组合。关于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

07-24 09:51