Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c NSURLSessionResponseBecomeDownload和NSURLSessionDownloadTask委托问题_Objective C_Nsurlsession_Nsurlsessiondownloadtask_Ios9.1 - Fatal编程技术网

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作为状态传递的