Valor negativo en el bloque de progreso durante la descarga del file

Quiero download el file pdf. Cuando descargo un pequeño file pdf, obtengo un valor más, pero cuando descargo un file grande, obtengo un valor negativo usando afnetworking.

aquí está mi código:

- (IBAction)download:(id)sender { NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@""]]; AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; NSString *pdfName = @"The_PDF_Name_I_Want.pdf"; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *path = [[paths objectAtIndex:0] stringByAppendingPathComponent:pdfName]; operation.outputStream = [NSOutputStream outputStreamToFileAtPath:path append:NO]; [operation setDownloadProgressBlock:^(NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead) { NSLog(@"Download = %f", (float)totalBytesRead / totalBytesExpectedToRead); self.progressView3.progress = (float)totalBytesRead / totalBytesExpectedToRead; }]; [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"Successfully downloaded file to %@", path); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"Error: %@", error); }]; [operation start]; } 

ver mi salida

 2016-04-06 15:04:53.842 pdf[8149:60b] Download = -811521.000000 2016-04-06 15:04:53.849 pdf[8149:60b] Download = -817179.000000 2016-04-06 15:04:53.860 pdf[8149:60b] Download = -819123.000000 2016-04-06 15:04:53.872 pdf[8149:60b] Download = -823469.000000 2016-04-06 15:04:53.879 pdf[8149:60b] Download = -826393.000000 2016-04-06 15:04:53.921 pdf[8149:60b] Download = -827820.000000 2016-04-06 15:04:53.932 pdf[8149:60b] Download = -830744.000000 2016-04-06 15:04:53.939 pdf[8149:60b] Download = -833662.000000 

por favor resuelve mi problema …

su problema es la longitud del contenido para cargar el file pdf en el server .totalBytesExpectedToRead es -1 si no se proporciona el encabezado HTTP Content-Length

por el server. Debe agregar este encabezado a su server o manejar -1 mostrando un UIActivityIndicator en lugar de un UIProgressView.

Como muestran sus loggings, el total totalBytesExpectedToRead es -1. Esto sucede cuando Content-Length no se proporciona en los encabezados de respuesta.

Puede manejar esto pidiéndole a los chicos del server que devuelvan la Content-Length adecuada o en la aplicación iOS mostrando un Indicador de actividad simple en lugar de una Vista de progreso.