2

私のアプリでは、いくつかのデータをダウンロードして投稿する必要があります...まず、いくつかのデータをダウンロードしてから、投稿リクエストを行う必要があります。アプリのUIをフリーズしないように非同期リクエストを使用しています...しかし、メソッドを呼び出してデータを投稿するとき...サーバーから返されるデータは気にしません。ただし、このメソッドは、POSTリクエストを実行するときにも呼び出されます。

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)aResponse
{
    NSLog(@"------------------------------- connectionDidReceiveResponse");
    expectedResponseLength = [NSNumber numberWithFloat:[aResponse expectedContentLength]];
    URLresponse = aResponse;
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{   



    [self.responseData appendData:data];
}

この2つの方法(上)(情報をダウンロードするときに使用)を呼び出さずに、ユーザーGUIをフリーズせずに(自動)このような投稿リクエストを行うにはどうすればよいですか(投稿リクエストを行うときにデータを気にしませんが、データが必要です最初のケース)?

私の投稿リクエストはこれです:

- (void)postRequestWithURLState:(NSString *)url
{
    NSString *bodyRequest = nil;
    NSURL *requestURL = [NSURL URLWithString:url];
    NSMutableURLRequest *theRequest = [[NSMutableURLRequest alloc] init];

    //NSLog(@"-------------- bodyRequest: %@", bodyRequest);



    [theRequest setURL:requestURL];
    [theRequest setTimeoutInterval:2.0];
    [theRequest setHTTPMethod:@"POST"];
    [theRequest setHTTPBody:[bodyRequest dataUsingEncoding:NSASCIIStringEncoding]];
    [self.oauthAuthentication authorizeRequest:theRequest];
    NSURLConnection *conn = [NSURLConnection connectionWithRequest:theRequest delegate:self];




    self.web = conn;




}
4

2 に答える 2

1

私は解決策をインターネットで探していましたが、最終的にはNSURLConnectionの独自のサブクラスを作成し、区別するためにタグ変数を割り当てました。詳細については、このブログ投稿を確認してください

于 2013-01-14T18:44:43.210 に答える
0

異なるリクエストを実行した後、それぞれへの参照を保持し、デリゲート メソッドで条件付きコードを作成して、2 つのリクエストに対して異なる処理を行うことができます。

それは初歩的な解決策であり、症状を治療しているように感じます. おそらく、アプローチをリファクタリングし、2 つの操作のそれぞれに対してコントローラーを作成し、ネットワーク通信のすべてをそこで実行する必要があります (現在、ビュー コントローラーですべてを実行しているようです)。

于 2011-12-06T16:18:58.750 に答える