2014-12-04 43 views
2

我正在使用NSURLSession下載多個文件,我想要保存下載的數據,即使取消下載任務和恢復想要開始下載其餘數據。 我的與NSURLSession如何獲取收到的數據或臨時文件位置取消下載任務

- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask 
    didReceiveData:(NSData *)data 

沒有被調用。

這我的代碼下載:

sessionConfig =[NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@"Download Manager"]; 

sessionConfig.allowsCellularAccess=!_UseOnlyWiFi; 

sessionConfig.HTTPMaximumConnectionsPerHost=1; 

queue.maxConcurrentOperationCount=1; 

session =[NSURLSession sessionWithConfiguration:sessionConfig 
                 delegate:self 
                delegateQueue:[NSOperationQueue mainQueue]]; 


NSURLSessionDownloadTask *downloadTask=[session downloadTaskWithURL:dwurl ]; 

[downloadTask resume]; 
+0

你指定了代理NSURLSessionDelegate,NSURLSessionTaskDelegate,NSURLSessionDownloadDelegate – 2014-12-04 05:43:48

+0

是的其他代理方法正在調用 – user4221623 2014-12-04 06:23:36

+0

你已經寫了datatask,你應該寫下載任務代表 – 2014-12-04 06:25:32

回答

0
`you have implemented datatask delegate but created download task implement this` 

- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask 
             didWriteData:(int64_t)bytesWritten 
            totalBytesWritten:(int64_t)totalBytesWritten 
          totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite; 
instead of 
(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data 
+0

我已經實現了這個方法和它的工作,但是這個方法不返回下載的數據。我想將部分下載的數據保存到.part文件 – user4221623 2014-12-04 08:44:36

+0

其下載任務爲什麼要保存部分完成的文件。 – 2014-12-04 08:46:20

+0

恢復從我暫停或取消任務 – user4221623 2014-12-04 08:50:22

0

也許你可以嘗試使用

cancelByProducingResumeData: 

它說上Apple documentation

Cancels a download and calls a callback with resume data for later use. 
相關問題