2011-10-18 10 views
1

ネットワークから問題がなければ、サーバーからデータをダウンロードするアプリケーションを設計しましたが、すべて正常に動作しています。しかし、ダウンロード中にネットワークの変動があると、一部のデータがダウンロードされず、アプリケーションがクラッシュします。 ここからあなたの助けが必要です。このような状況に対処するための別のコードを記述し、不完全なダウンロードデータを削除してデータ全体を再ダウンロードすることは可能ですか? ありがとうございました壊れた処理のダウンロード

+0

内のすべてのものは、あなたが現在やっていることのいくつかのコードを投稿してみ扱うことができる
(NSError *)エラー:(NSURLConnection *)接続didFailWithError:(空)接続 - それは方法
の下に呼び出します。 。 –

答えて

0

NSURLConnectionまたは他のネットワークAPIを使用している場合は、ネットワークの変動などの問題が発生した場合は、HTTPエラーコードを取得する必要があります。あなたはそれを使用してダウンロードされた不完全なデータを削除し、コントローラコードを知らせることができます。

+0

非常にあなたの返信のためのAdityaクマールPandeyありがとうございます。しかし、私はアプリケーションのさまざまなクラスに異なるファイルをダウンロードしています。そして、私はこのコードを別のクラスに書くことができるかどうかを知りたいだけでなく、このクラスのすべてのダウンロードを処理します。そうであれば、単一の関数で十分であるかどうか、またその引数と戻り値の型は何か。 –

0

Adityaが正しいです。 、あなたの接続は次のデリゲートメソッドを使用して応答コードを読み取ることができます破る場合は、NSURLConnectionを使用していることを

- (void)connection:(NSURLConnection*)connection didReceiveResponse:(NSURLResponse*)response { 
    NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response; 
    int responseStatusCode = [httpResponse statusCode]; 
} 

を想定して、あなたは、接続を停止し、あなたの未完成のダウンロードデータの削除を進めることができます。


コメントの回答が更新されました。

異なるクラスの異なる接続を使用している場合は、これを各クラスに実装する必要があります。私の意見では、特定のクラスがすべての接続関連のタスクを処理するようなデザインを用意する必要があります。 (あなたの要求に合っていないかもしれません)。しかし、あなたの現在のデザインでは、これをあなたのすべてのクラスで使うべきです。

+0

あなたの素早い返信のために非常にElanthiraiyanSありがとうございます。しかし、私はアプリケーションのさまざまなクラスに異なるファイルをダウンロードしています。そして、私はこのコードを別のクラスに書くことができるかどうかを知りたいだけでなく、このクラスのすべてのダウンロードを処理します。そうであれば、単一の関数で十分であるかどうか、またその引数と戻り値の型は何か。 –

+0

私の答えを更新しました。 – sElanthiraiyan

1

はい。出来るよ。
2つの状況があります
1.ネットワークが利用できません。
- >これを修正するには、Rechabilityサンプルコード(Apple提供)を使用する必要があります。ダウンロードを開始する前に、インターネットの可用性をチェックする必要があります。
- >または、インターネットrechabilityをチェックしていない場合、NSURL接続の代理メソッドでエラーコード(404)が表示されます。
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
2.ネットワークの変動。
ここでは、ネットワークが変動する場合、ダウンロードすることを意味します。あなたがこの方法

関連する問題