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.

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top