2011-09-10 27 views
-1

私のASIHttpFormDataRequestの終了を知るにはどうすればいいですか? 実際に私は2つ続けています。最初のメッセージはメッセージを送信するもので、もう一方はデータベースからすべてのメッセージを取得するものです。終了時のASIHttpFormDataRequest通知

また、最初のメッセージがまだ送信されていないことがあり、2回目のリクエストでメッセージの未アップロードリストが表示されることがあります。

私は最初のものの最後に2番目のものを遅らせたいと思います。 ありがとう!

アイデア?

ありがとうございました:)

答えて

0

リクエストを非同期的に使用することをお勧めします。

リクエストが完了したかどうかを確認するには、クラスを[ASIHTTPRequestDelegate][1]に準拠させるだけで済みます。 成功した、失敗した、またはリダイレクトされたリクエストを実装する方法をたくさん提供します。

あなたが探している場合 - (void)requestFinished:(ASIHTTPRequest *)request; 現在の呼び出し元クラスに要求の代理人を設定する必要があります。

現在のリクエストの結果に応じて、別のリクエストを送信できます。そこにif-statementを入れてURLと応答コードを確認し、それに応じて次のリクエストを発してください。 (。。そこには、次の要求を呼び出すことができるときを決定するために他の多くの方法があるしかし、最も簡単には最初のリクエストの結果を聞くことであろう)

ここASIHTTPRequest Projects Documentationからのコードのビットです:

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

HTH

+0

ありがとうございました。 実際に私はそれらの要求を待ち行列に入れることもできることを知りました。右 ? – EricDumont

関連する問題