Question

Je veux utiliser la bibliothèque ASIHttprequest de télécharger des fichiers, je teste avec leur code et il ne fonctionne pas alors que le même code fonctionne sur leur échantillon

Ceci est mon code pour appeler leur point de vue

  

QueueViewController   * QueueViewController = [[QueueViewController alloc]   initWithNibName: @ paquet "file d'attente": nil];     [self.view   addSubview: queueViewController.view];

le code pour faire la demande

- (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];
        }
    }
}

Il semble que la file d'attente est d'être configuré correctement, mais la méthode imageFetchComplete n'est pas appelée lorsque le téléchargement est terminé.

Était-ce utile?

La solution 2

Je suis la question fixe, le problème était que je n'alloc networkQueue.

J'étais networkQueue alloc dans le awakeFromNib il n'a pas été appelé. Donc, j'alloc networkQueue dans la méthode de clic du bouton. Ce résolu le problème.

Autres conseils

Essayez de régler requestDidFailSelector sur votre instance de ASINetworkQueue, ainsi que la mise didFinishSelector et didFailSelector sur chaque instance de ASIHTTPRequest. Appelez NSLog () de chacune de ces méthodes de rappel dans votre délégué pour voir ce qui se passe.

Notez que, en permettant showAccurateProgress sur votre ASINetworkQueue, une demande HEAD supplémentaire est fait pour chaque demande que les processus de file d'attente. Cela peut parfois être moins qu'idéale dans un contexte mobile.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top