0

SOF でこの問題を数日間検索してきましたが、解決策 (同じ問題を言う) がまだ見つかりません。

URLリストで5つの画像を同時にダウンロードするアプリを作成しています(各画像は別のサーバーにあります)。

ImageDownloaderクラスのサブクラスがNSOperationあり、NSURLConnectionDataDelegate.

のインスタンスを に追加して、ImageDownloaderoperationQueueViewControllerの別のスレッドで実行できるようにします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

4

2 に答える 2