NSURLConnection を使用して、大きなテキスト ファイルを返す Web サービスにいくつかの http 要求を作成しています。明らかに、これはメイン スレッドをブロックし、ラグが追加されるため、これをバックグラウンドで処理したいと考えています。ところで、この特定の仕事/状況を処理するサードパーティのフレームワークがあることは認識していますが、iOS でのマルチスレッドについて学ぶ必要があるため、これを自分でコーディングしています。
NSThread をデタッチするか、ブロックで NSURLConnection コードを GCD に渡すことができます。どちらの方法も最初は問題なく機能します (http 接続を確立して要求を送信するため)。問題は、サーバーからデータを取り戻す方法です。説明させてください....私のWebサービスがデータを送り返すと、私のアプリはNSURLConnectionDelegateプロトコルからのコールバックを介して通知されます。しかし、これが発生するまでに、切り離されたスレッドがターゲットメソッドを終了しているか、ブロックがすでに GCD によって処理されており、キューから外れています (使用したアプローチによって異なります)。基本的に、コールバックはアプリに気付かれません (もちろん、dispatch_main_queue を使用している場合を除きます)。
それぞれのケースでこれを解決するための「正しい」objective-cの方法は何ですか?
方向性をありがとう