質問

私は、私は自分のコードをテストしていいくつかのファイルをダウンロードするにはASIHttprequestライブラリを使用すると、同じコードがそのサンプル上で動作しながら、それが機能していません。

これは彼らのビューを呼び出すための私のコードです。

  

QueueViewController   * queueViewController = [[QueueViewController ALLOC]   initWithNibName:@ "キュー" バンドル:nilを];     [self.view   addSubview:queueViewController.view];

このコードは、要求を行う

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

これは、キューが適切に設定されているが、ダウンロードが行われたときにimageFetchCompleteメソッドが呼び出されていない。

のようになります。
役に立ちましたか?

解決 2

私は問題は固定だ、問題は、私はnetworkQueueをALLOCていなかったということでした。

私は、それが呼び出されていませんでしたawakefromnibではalloc networkQueueました。だから私は、ボタンのクリック方法でnetworkQueueをALLOC。それは問題を修正しました。

他のヒント

requestDidFailSelectorのインスタンスにASINetworkQueueを設定するだけでなく、didFinishSelectorの各インスタンスにdidFailSelectorASIHTTPRequestを設定してみてください。何が起こっているかを確認するために、デリゲートでこれらのコールバックメソッドのそれぞれからのNSLog()を呼び出します。

あなたのshowAccurateProgressASINetworkQueueを有効にすることによって、追加のHEADリクエストがすべての要求キュー・プロセスのために行われることに注意してください。これは、時々、モバイル文脈における理想的な未満とすることができる。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top