Pergunta

Eu quero usar a biblioteca ASIHttprequest o download de alguns arquivos, estou testando com o seu código e ele não está funcionando, enquanto as mesmas obras de código em sua amostra

este é o meu código para chamar sua visão

QueueViewController * QueueViewController = [[QueueViewController alloc] initWithNibName: @ "Fila" pacote: nil]; [self.view addSubview: queueViewController.view];

Este é o código para fazer o pedido

- (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 a fila está sendo configurado corretamente mas o método imageFetchComplete não está sendo chamado quando o download é feito.

Foi útil?

Solução 2

Eu tenho o problema corrigido, o problema era que eu não era alloc networkQueue.

Eu estava alloc networkQueue na awakeFromNib não estava sendo chamado. Então eu alloc networkQueue no método clique de botão. Isso corrigiu o problema.

Outras dicas

Tente configurar requestDidFailSelector em sua instância de ASINetworkQueue, bem como a criação didFinishSelector e didFailSelector em cada instância de ASIHTTPRequest. Chamada NSLog () de cada um desses métodos de retorno de chamada no seu delegado para ver o que está acontecendo.

Note que ao permitir showAccurateProgress em seu ASINetworkQueue, um pedido HEAD adicional é feito para cada solicitação que os processos de fila. Isto às vezes pode ser inferior a ideal em um contexto móvel.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top