NSURLConnectionのドキュメントには、NSURLConnectionは別のスレッドで実行され、デリゲートメソッドは接続を開始したスレッドで呼び出されると記載されています。
並行して実行する「 URLDownload<NSURLConnectionDelegate> 」オブジェクトでラップされたNSURLConnectionオブジェクトが複数あります。
プログラムを一時停止し(ある時点でブレークポイントを設定します)、Debug Navigatorを調べていると、com.apple.NSURLConnectionLoaderスレッドが1つしか表示されません。
これがどのように機能すると思うかです:
- 5つのURLDownloadオブジェクトを作成します(それぞれに独自のNSURLConnectionがあります)
- 5つのスレッドが作成されます( NSURLConnectionごとに1つ)
- 各NSURLConnectionは、それらを開始したスレッドでデリゲートメソッドを呼び出します。
したがって、5つのスレッド( NSURLConnectionごとに1つ)がありますが、それらのデータ(didReceiveData ...メソッドなど)は単一のスレッドで処理されます。
私はこれを正しく理解しましたか?