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