AFDownloadRequestOperation を使用しています。正常に動作していましたが、実行するたびに突然このエラーが発生します (実行するたびに同じ URL からダウンロードし、AppDelegate の Documents フォルダーと Temp フォルダーをクリアします)。
ダウンロードを開始します。(ダウンロードする前に、Temp または Documents フォルダーに何もないことを手動で確認します。つまり、ダウンロードが完了したらファイルを保存する場所です)。
ダウンロードは 1 ~ 2 秒で終了し、コードは成功ブロックに移動し、デバッグ コンソールには 206 ステータス コードが表示され、ファイルはどこからともなく魔法のように Documents フォルダーに配置され、正確なファイル サイズになります (以前は適切にダウンロードされ、私はこの問題に遭遇し始めました)。ファイルが壊れていて、開けません。
ここにコードスニペットがあります -
download_operation_progress_block = ^(AFDownloadRequestOperation *operation, NSInteger bytesRead, long long totalBytesRead, long long totalBytesExpected, long long totalBytesReadForFile, long long totalBytesExpectedToReadForFile) {
float progress = ((float)totalBytesReadForFile) / totalBytesExpectedToReadForFile;
dataFetcherObject.downloadProgressDetails.downloadPercentage = [NSNumber numberWithFloat:floorf(progress*100)];
};
download_operation_success_block = ^(AFHTTPRequestOperation *operation, id responseObject) {
dataFetcherObject.downloadProgressDetails.isDownloadDone = [NSNumber numberWithBool:YES];
dataFetcherObject.isDataFetched = @"Yes";
};
download_operation_failure_block = ^(AFHTTPRequestOperation *operation, NSError *error) {
[dataFetcherObject.downloadProgressDetails.downloadOperation cancel];
dataFetcherObject.isDataFetched = @"Error";
};
AFDownloadRequestOperation *operation = [[AFDownloadRequestOperation alloc] initWithRequest:contentDownloadRequest
targetPath:path
shouldResume:YES];
[operation setCompletionBlockWithSuccess:download_operation_success_block
failure:download_operation_failure_block];
[operation setProgressiveDownloadProgressBlock:download_operation_progress_block];
// operation.deleteTempFileOnCancel = TRUE;
NSOperationQueue *operationQueue = [[NSOperationQueue alloc] init];
[operationQueue addOperation:operation];
dataFetcherObject.downloadProgressDetails.downloadOperation = operation;
この理由は何でしょうか。