Objective c NSURLSessionResponseBecomeDownload和NSURLSessionDownloadTask委托问题
在我的项目中,我启动一个Objective c NSURLSessionResponseBecomeDownload和NSURLSessionDownloadTask委托问题,objective-c,nsurlsession,nsurlsessiondownloadtask,ios9.1,Objective C,Nsurlsession,Nsurlsessiondownloadtask,Ios9.1,在我的项目中,我启动一个NSURLSessionDataTask来检查请求的标题,如果他们正确,我将请求转换为下载,或者干脆放弃它: - (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveResponse:(NSURLResponse *)response completionHandler:(void (^)(NSURLSessionResponseDispo
NSURLSessionDataTask
来检查请求的标题,如果他们正确,我将请求转换为下载,或者干脆放弃它:
- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveResponse:(NSURLResponse *)response completionHandler:(void (^)(NSURLSessionResponseDisposition))completionHandler
{
if (XYZ) {
completionHandler(NSURLSessionResponseCancel);
}
else {
completionHandler(NSURLSessionResponseBecomeDownload);
}
}
}
但是,我遇到了一个问题:一旦会话变成NSURLSessionDownloadTask
,有时什么也不会发生,-(void)URLSession:(NSURLSession*)会话下载任务:(NSURLSessionDownloadTask*)下载任务完成了下载教程:(NSURL*)位置
,并且-(void)URLSession:(NSURLSession*)会话任务:(NSURLSessionTask*)任务未完成错误:(NSError*)错误
这里发生了什么?有意义吗
––编辑–编辑–
显然这解决了问题
- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didBecomeDownloadTask:(NSURLSessionDownloadTask *)downloadTask
{
// Resume the Download Task manually because apparently iOS does not do it automatically?!
[downloadTask resume];
}
非常感谢您的编辑真的很有帮助!捕捉得很好,数据和下载任务都是以NSURLSessionAskstateSupspended作为状态传递的