ASIHttpRequest NetworkQueue問題
-
11-09-2019 - |
質問
私は、私は自分のコードをテストしていいくつかのファイルをダウンロードするには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
の各インスタンスにdidFailSelector
とASIHTTPRequest
を設定してみてください。何が起こっているかを確認するために、デリゲートでこれらのコールバックメソッドのそれぞれからのNSLog()を呼び出します。
あなたのshowAccurateProgress
にASINetworkQueue
を有効にすることによって、追加のHEADリクエストがすべての要求キュー・プロセスのために行われることに注意してください。これは、時々、モバイル文脈における理想的な未満とすることができる。