0

ASIHTTPRequestを使用して、Webサービスからいくつかのデータをフェッチしています。

ループを使ってリクエストしています。

問題は、リクエストが非同期で行われているように見えないため、アクティビティインジケーターが機能していないことです。

ASIHTTPRequestが非同期ではないというのは本当ですか。

または、通常のnsmutablerequestを使用して非同期リクエストを実行する必要があります。

4

2 に答える 2

2

リクエストをダウンロードキューに入れる必要があります。

ASIHTTPRequest *request = [[ASIHTTPRequest alloc] initWithURL:url];
[request setDelegate:self];
[request setDidFinishSelector:@selector(requestDone:)];
[request setDidFailSelector:@selector(requestWentWrong:)];
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[queue addOperation:request];
[request release];    

ただ

[request startAsynchronous]; 

UIスレッドでリクエストを実行するため、ダウンロードキューで試してみてください。

于 2010-01-09T11:42:16.310 に答える
0

同期同期の場合

  NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"];
  ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
  [request startSynchronous];
  NSError *error = [request error];
  if (!error) {
    NSString *response = [request responseString];
  }

非同期リクエストの作成

- (IBAction)grabURLInBackground:(id)sender
{
   NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"];
   ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
   [request setDelegate:self];
   [request startAsynchronous];
}

- (void)requestFinished:(ASIHTTPRequest *)request
{
   // Use when fetching text data
   NSString *responseString = [request responseString];

   // Use when fetching binary data
   NSData *responseData = [request responseData];
}

- (void)requestFailed:(ASIHTTPRequest *)request
{
   NSError *error = [request error];
}

そして、キューやその他多くのオプションがたくさんあります

http://allseeing-i.com/ASIHTTPRequest/How-to-useを参照できます

于 2012-02-23T07:11:50.160 に答える