すでにここにある 1,000 を超える質問に加えて、さらに別の NSURLConnection の質問に煩わされて申し訳ありません。
シナリオは次のとおりです。動的に読み込まれる拡張現実機能を使用する iPhone アプリでは、新しい AR モデルが利用可能になると、ユーザーはそのモデルをダウンロードするように求められます。モデルは数 MB の大きさになる可能性があるため、ダウンロードすることを決定する前に、ダウンロードするすべてのモデルの合計サイズをユーザーに示す必要があります。
各ファイルのサイズを確認するには、非同期 NSURLConnection を使用しますが、応答 ([NSURLResponse expectedContentLength]) を取得したらダウンロードを停止します。これは、デリゲートの connection:didReceiveResponse: メソッドで実行できます。
私の質問は、この状態が発生するまでどのように待つことができるでしょうか? NSURLConnection をセットアップし、非同期に開始してから、connection:didReceiveResponse: メソッドが呼び出されるまで待機するにはどうすればよいですか? 私は NSCondition を使用してみました。これは、NSURLConnection をセットアップした後、および connection:didReceiveResponse: メソッドで条件を通知するときに待機させます。しかし、これはメインスレッドをフリーズさせるだけでした。何か案は?