Frage

Ich mag die ASIHttprequest Bibliothek verwenden, um einige Dateien herunterladen, den ich mit ihrem Code mich entschieden und es nicht funktioniert, während der gleiche Code auf ihrer Probe funktioniert

Das ist mein Code ihrer Sicht zu nennen

  

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

Dies ist der Code, um den Antrag zu stellen

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

Es sieht aus wie die Warteschlange richtig sein Setup ist aber imageFetchComplete Methode nicht aufgerufen wird, wenn der Download abgeschlossen ist.

War es hilfreich?

Lösung 2

Ich habe das Problem behoben, das Problem war, dass ich nicht Alloc networkQueue.

Ich war alloc networkQueue im awakeFromNib es nicht aufgerufen wurde. Also ich Alloc networkQueue im Button-Klick-Methode. Das regelte das Problem.

Andere Tipps

Versuchen Sie requestDidFailSelector auf Ihrer Instanz von ASINetworkQueue Einstellung sowie die Einstellung didFinishSelector und didFailSelector auf jede Instanz von ASIHTTPRequest. Rufen Sie NSLog () von jedem dieser Callback-Methoden in Ihrem delegieren, um zu sehen, was passiert.

Beachten Sie, dass showAccurateProgress auf Ihrem ASINetworkQueue durch Aktivierung eine zusätzliche HEAD-Anforderung für jede Anforderung, dass die Warteschlange Prozesse erfolgt. Dies kann manchmal weniger als ideal in einem mobilen Kontext.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top