0

当我开始使用 NSURLSessionDataTask 下载文件时,进度有一段时间无法正常工作。然后在下载完成后,只有进度条显示为全蓝色。

我的代码

 - (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveResponse:(NSURLResponse *)response completionHandler:(void (^)(NSURLSessionResponseDisposition disposition))completionHandler

  {
completionHandler(NSURLSessionResponseAllow);
 NSLog(@"Response:%@ \n", response);
self.progressView.progress=0.0f;

   self.downloadSize=[response expectedContentLength];
self.dataToDownload=[[NSMutableData alloc]init];

}


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


[self.dataToDownload appendData:data];

self.progressView.progress=[ self.dataToDownload length ]/_downloadSize;
}



  - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask  *)task
didCompleteWithError:(NSError *)error {

if (error) {


    // Handle error
}
else {

 }

这些是我用来实现的代码。

4

1 回答 1

1

应确保所有 UI 更新都在主队列中运行

dispatch_async(dispatch_get_main_queue(), ^{
   self.progressView.progress=[ self.dataToDownload length ]/_downloadSize;
});
于 2016-03-08T10:09:55.390 回答