ASIHttpRequest NetworkQueue problema
-
11-09-2019 - |
Pregunta
Quiero usar el ASIHttprequest biblioteca para descargar algunos archivos, estoy probando con su código y no está funcionando, mientras que el mismo código funciona en su muestra
este es mi código para llamar a su punto de vista
QueueViewController *queueViewController = [[QueueViewController alloc] initWithNibName:@"Cola" del paquete:nil];[auto.ver addSubview:queueViewController.ver];
Esta el código para hacer la solicitud
- (IBAction)fetchThreeImages:(id)sender
{
[imageView1 setImage:nil];
[imageView2 setImage:nil];
[imageView3 setImage:nil];
[networkQueue cancelAllOperations];
[networkQueue setDownloadProgressDelegate:progressIndicator];
[networkQueue setRequestDidFinishSelector:@selector(imageFetchComplete:)];
[networkQueue setShowAccurateProgress:[accurateProgress isOn]];
[networkQueue setDelegate:self];
ASIHTTPRequest *request;
request = [[[ASIHTTPRequest alloc] initWithURL:[NSURL URLWithString:@"http://allseeing-i.com/i/logo.png"]] autorelease];
[networkQueue addOperation:request];
request = [[[ASIHTTPRequest alloc] initWithURL:[NSURL URLWithString:@"http://allseeing-i.com/i/trailsnetwork.png"]] autorelease];
[networkQueue addOperation:request];
request = [[[ASIHTTPRequest alloc] initWithURL:[NSURL URLWithString:@"http://allseeing-i.com/i/sharedspace20.png"]] autorelease];
[networkQueue addOperation:request];
[networkQueue go];
}
- (void)imageFetchComplete:(ASIHTTPRequest *)request
{
UIImage *img = [UIImage imageWithData:[request responseData]];
if (img) {
if ([imageView1 image]) {
if ([imageView2 image]) {
[imageView3 setImage:img];
} else {
[imageView2 setImage:img];
}
} else {
[imageView1 setImage:img];
}
}
}
Parece que la cola está siendo el programa de instalación correctamente, pero imageFetchComplete método no se llama cuando la descarga se hace.
Solución 2
Tengo el problema fijado, el problema era que no estaba alloc networkQueue.
Yo estaba networkQueue alloc en el awakeFromNib no estaba siendo llamado. Así que alloc networkQueue en el método de clic de botón. Que ha solucionado el problema.
Otros consejos
Trate de establecer requestDidFailSelector
en la instancia de ASINetworkQueue
, así como la creación y didFinishSelector
didFailSelector
en cada instancia de ASIHTTPRequest
. Llamar NSLog () de cada uno de esos métodos de devolución de llamada en su delegado para ver lo que está pasando.
Tenga en cuenta que al permitir showAccurateProgress
en su ASINetworkQueue
, una petición HEAD adicional se realiza para cada solicitud que los procesos de la cola. Esto a veces puede ser menos que ideal en un contexto móvil.