1

私の iOS プロジェクトでは、NSURLConnection を使用してファイルをダウンロードします。私のコードはhttp://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/URLLoadingSystem/Tasks/UsingNSURLConnection.htmlドキュメントと同じです。私のチームの Android プロジェクトでは、Android の API を使用して同じファイルをダウンロードします。特別なことは何もありません。iOS プロジェクトと Android プロジェクトの両方に同じ失敗再試行メカニズムがあり、どちらも同じ統計データをサーバーに送信します。彼らがダウンロードしようとしているファイルは、1M から 10M の間です。

統計サーバーによると、同じ URL のダウンロードの失敗は、Android では 2% ですが、iOS では 20% です。彼らは同じ URL をダウンロードしようとしているので、サーバーの問題ではなく、クライアントの問題のようです。

iOS のダウンロードが頻繁に失敗するのはなぜですか? ダウンロードを堅牢にするために、iOS で使用する必要がある特別な API はありますか? 現在、私は NSURLConnection を使用していますが、ファイルの書き込みに便利な NSURLDownloader を見つけました。ダウンロードの成功率は異なりますか?

PS私が得たエラー-
(void) connection: (NSURLConnection *) connection didFailWithError: (NSError *) , is usually -1005, NSURLErrorNetworkConnectionLost.

4

1 に答える 1

1

NSURLErrorNetworkConnectionLost が発生する理由を詳しく調べることをお勧めします。デバイスが接続済みと表示されていても、接続が失われ、インジケーターが適宜更新される前に接続を回復しようとする場合があります。

これは、到達可能性をより適切に処理するための詳細情報の出発点として適しています。Objective C でのインターネット接続の確認

それ以外の場合は、ダウンロード関連のコードを投稿して、他の人が潜在的な問題を探すことができるようにすることをお勧めします。

于 2012-12-24T04:02:15.827 に答える