NSURLConnectionのデリゲートメソッドを持つサーバークラスがあります。そして、NSMutableURLRequestをサーバークラスに送信するSendRequestという名前の別のクラスがあります。サーバークラスでは、2つのメソッドが呼び出されます
- (void)executeAsync:(NSMutableURLRequest)urlRequest timeOutInterval:(int)timeOut
{
_urlConnection = [[NSURLConnection alloc] initWithRequest:urlRequest delegate:self startImmediately:YES];];
}
- (void)executeSync:(NSMutableURLRequest)urlRequest
{
NSData* respData = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:&response error:&error];
}
ここまではすべて正常に機能します。デリゲートメソッドを呼び出しているSendRequestクラスから上記のexecuteAsyncメソッドを呼び出すことができます。
ここで、SendRequestクラスに新しいメソッドを追加しました。このメソッドは、ServerクラスのexecuteRequestメソッドを呼び出します。
- (void)executeRequest:(NSMutableURLRequest)urlRequest
{
_urlConnection = [[NSURLConnection alloc] initWithRequest:urlRequest delegate:self startImmediately:YES];];
}
今回は閉じ込められました。executeRequestメソッドが呼び出されていますが、URL要求の処理中にデリゲートメソッドを呼び出していません。私はここで何時間も打たれています。
すべてが正しいようです。以前と同じ方法でurlRequestを送信しています。しかし、なぜそれが機能しないのかわかりません。遠慮なくコメントしてください、でも助けてください。本当に心配です
編集 :
サーバーにリクエストを投稿して、レスポンスを取得する必要があります。同期を試してみると、正常に動作していますが、メインスレッドがブロックされています。それが私が非同期に行く理由です。デリゲートメソッドを使用して、応答データを取得しようとしています。