SOF でこの問題を数日間検索してきましたが、解決策 (同じ問題を言う) がまだ見つかりません。
URLリストで5つの画像を同時にダウンロードするアプリを作成しています(各画像は別のサーバーにあります)。
ImageDownloader
クラスのサブクラスがNSOperation
あり、NSURLConnectionDataDelegate
.
のインスタンスを に追加して、ImageDownloader
のoperationQueue
下ViewController
の別のスレッドで実行できるようにしますoperationQueue
。ダウンローダーをに追加する行operationQueue
は次のとおりです。
downloader = [[ImageDownloader alloc] init];
[downloader downloadImageWithURL:[controller.URList objectForKey:[NSString stringWithFormat:@"%d",downloadIndex]] queue:queue andTag:downloadIndex + 100]; //my custom initialize
downloader.delegate = self;
[queue addOperation:downloader]; //use the addOperation method
iOS6 ではすべて正常に動作しますが、iOS5didReceiveResponse
(テスト デバイスでは 5.0、SDK では 5.1) ではうまくいきません。メソッドを実行しても応答もデータもまったく受信されませんdidReceiveData
(これら 2 つのメソッドはジャンプされません)。
タイムアウトを超えると、実行ループがdidFailWithError
メソッドにジャンプし、プログラムが停止します。
私が理解しているように、これはランループがまだ正しく実行されていることを意味しますか?
を印刷しようとしましたが、error
得られたのは次のとおりThe request timed out
です。
ダウンロード インスタンスの数を 2 に減らすと実行されますが、3 つ以上のダウンロード インスタンスでは実行されません。
もう 1 つの情報は、私のネットワーク接続では接続数が制限されているということです。しかし、iOS6 では問題なく動作するのに、なぜ iOS5 では動作しないのでしょうか?
アプリのダウンロード中にシミュレーターに Web を読み込むことができます。
では、これはどのような問題で、どうすればこの問題を乗り越えることができるのでしょうか?
前もって感謝します。
*更新: *多くのクラスがあり、問題がまだ明確に検出されていないため、ここでプロジェクト全体を共有します。ここから直接ダウンロードできます: DownloadingImage