私は Objective-C でダウンロード マネージャーを作成しており、再開機能を使用しています。何らかの理由でダウンロードが中断された場合に、中断したところから再開できるように、受信したデータをディスクに書き込みます。Apple は、1 つまたは複数の- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
イベントを予期する必要があると述べています。この場合、ダウンロードがリダイレクトされ、既に受信したバイトが無効であるため、以前に受信したデータをリセットする必要があるとのことです。そのため、既存のファイルを削除し、0 バイトで再作成します。しかし、このイベントを複数回受信すると、以前に部分ダウンロードの形式で受信したデータを削除する必要があり、再開機能の目的が無効になります。これに対する解決策はありますか?
私が思いついた解決策は- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
、最初に受け取ったイベントのデータのみをリセットすることです。これにより、ほとんどのケースが修正されます(私はそう思います)。これは論理的に正しいでしょうか?より良い代替手段はありますか?ファイルのダウンロードで複数の- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
イベントが発生する可能性はどのくらいありますか?