foo:
バックグラウンド スレッドで呼び出されるメソッドがあります。このメソッドは単純にリクエストをサーバーに送信し、データが取得された後、それらのデータに関する計算を実行して戻ります。この場合、私はsendSynchronousRequest
: を使用することを好みます。この方法は便利で、スレッドがブロックされていても問題にならないからです。ただし、応答には、別のページにリダイレクトする "Location" ヘッダー フィールドが含まれています。リダイレクトの前に、これらの「Set-Cookie」ヘッダー フィールドを取得するために応答を読みたいと思います。同期メソッドでは許可されていないようです。
非同期のものを使用して を実装しようとしましたNSURLConnectionDataDelegate
が、デリゲートのメソッドが呼び出される前にスレッドが終了します。(Appleが非同期のものを実装する方法は、時間のかかる作業を新しいスレッドで実行することだと思います)
この問題を解決する方法はありますか? メインスレッドで非同期リクエストを実行すると、プログラムが複雑になる可能性があります。
foo: メソッドはこのようなものです
- (Result *)foo
{
NSURLMutableRequest * request = blablabla;
//Do something to initialize the request
NSData *data = [NSURLConnection sendSynchronousRequest:request
returningResponse:&response
error:&error];
//Do something with the data
Result *result = [[Result alloc] init] autorelease];
//fill the result
return result;
}