Я пытаюсь показать прогресс загрузки, а также на ярлыке в моем приложении. Код в объективе c. Но я получаю отрицательное значение прогресса. Пожалуйста, помогите мне решить проблему. Пожалуйста, посмотрите на мой код и вывод, я упомянул ниже. Мой код:
- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveResponse:(NSURLResponse *)response completionHandler:(void (^)(NSURLSessionResponseDisposition disposition))completionHandler {
completionHandler(NSURLSessionResponseAllow);
dispatch_async(dispatch_get_main_queue(), ^{
float progress = 0.0f;
[self.progressView setProgress:progress animated:YES];
self.lblProgressCount.text = [NSString stringWithFormat:@"%.0f%%",progress*100];
NSLog(@"%@",[NSString stringWithFormat:@"%.0f",progress*100]);
});
_downloadSize=[response expectedContentLength];
}
- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data {
if(!_dataToDownload){
_dataToDownload=[[NSMutableData alloc]init];
}
[_dataToDownload appendData:data];
float progress = [ _dataToDownload length ]/_downloadSize;
NSLog(@"_downloadSize is: %f",_downloadSize);
NSLog(@"_dataToDownload.length is: %lu",(unsigned long)[
_dataToDownload length ]);
NSLog(@"progress : %f",progress);
NSLog(@"progress is : %@",[NSString
stringWithFormat:@"%.0f",progress*100]);
dispatch_async(dispatch_get_main_queue(), ^{
[self.progressView setProgress:progress animated:YES];
self.lblProgressCount.text = [NSString stringWithFormat:@"%.0f%%",progress*100];
});
}
Я получаю вывод как: -
_downloadSize is: -1.000000
_dataToDownload.length is: 9321
progress : -9321.000000
progress is : -932100
_downloadSize is: -1.000000
_dataToDownload.length is: 15352
progress : -15352.000000
progress is : -1535200