4

で使用NSURLConnectionする場合sendAsynchronousRequest:queue:completionHandler:、完了ハンドラー内で特別な注意を払う必要がありますか?具体的には、UIと対話するために完了ブロックがメインスレッドに戻る必要があるという点で、NSURLConnectionを使用するのと同じ/類似した方法で非同期に直接送信していますか?dispatch_async

例:dispatch_asyncUIとの対話(おそらく間違った単語)に使用した後、アプリはを使用する必要がありますperformSelectorOnMainThread

それはまったく考慮事項sendAsynchronousRequest:queue:completionHandler:ですか?

注:同様の質問を見つけましたが、具体的にはそうではありません。たとえば、NSURLConnectionはメインスレッドをブロックしますか?indiekidukは、内部スレッドではありますが、これは新しいスレッドであると具体的に述べています。実行ループの最後にあると思っていたので、欠陥があると思いますが、まだ学習中であり、おそらく/おそらく間違っています。

4

2 に答える 2

5

NSURLConnectionqueue パラメータの状態に関するドキュメントsendAsynchronousRequest:queue:completionHandler:

キュー
リクエストが完了または失敗したときにハンドラー ブロックがディスパッチされるオペレーション キュー。

ブロックは、渡されたキューが設定されたスレッドで実行されます。

于 2012-11-18T12:48:38.373 に答える
0

NSURLConnection sendAsyncは、スレッドのRunLoopでスケジュールされ、AFAIKでスケジュールされるため、ブロックは、開始したスレッドで呼び出されます。

于 2012-11-18T12:45:49.167 に答える