sendAsynchronousRequest:queue:completionHandler:
メソッド(NSURLConnection
クラス)に関連する正しい構成をセットアップするのにいくつかの困難があります。
私のシナリオは次のとおりです。
さまざまな を管理するシングルトン クラスをセットアップしましたNSURLConnection
。このシングルトン インスタンスには、Web サーバーにリクエストを送信し、文字列パスを取得するNSOperation Queue
( と呼ばれるdownloadQueue
) があります (1)。完了したら、パスを使用して Web サーバー内でファイルをダウンロードします (2)。最後に、ファイルが正しくダウンロードされたら、UI を更新する必要があります (3)。
最初のリクエスト、つまりパスをダウンロードできるリクエストだけを見つけました。残りの 2 つの手順を実行する方法を教えてください。
ここでいくつか質問があります:
ダウンロード キュー (
downloadQueue
) はメインのキューではありません。そのキューで新しい NSURLConnection を開くことはできますか? 言い換えれば、それは正しいですか?(コード スニペットのコメントを参照)前の質問が正しければ、メイン キューを取得して UI を更新するにはどうすればよいですか?
ここで、最初のステップを実行するために使用するコード スニペットdownloadQueue
は、アクセサー メソッド ( @property
/ @synthesized
) を介して取得できるインスタンス変数です。
// initializing the queue...
downloadQueue = [[NSOperation alloc] init];
// other code here...
[NSURLConnection sendAsynchronousRequest:urlRequest queue:[self downloadQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
if([data length] > 0 && error == nil) {
// here the path (1)
// how to perform a second connection?
// what type of queue do I have to use?
}
}];