当我开始使用 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 {
}
这些是我用来实现的代码。
最佳答案
应确保所有 UI 更新都在主队列中运行
dispatch_async(dispatch_get_main_queue(), ^{
self.progressView.progress=[ self.dataToDownload length ]/_downloadSize;
});
关于ios - 当我使用 NSURLSessionDataTask 下载任务时进度条无法正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35864311/