1

我正在使用 AFDownloadRequestOperation。它工作正常,但现在每次运行它时都会突然出现此错误(我每次运行它时都从同一个 URL 下载,并且我确实清除了 AppDelegate 中的 Documents 和 Temp 文件夹)。

  1. 开始下载。(在下载之前,我会手动检查 Temp 或 Documents 文件夹中是否没有任何内容,即下载完成后我存储文件的位置)。

  2. 下载在 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;

这可能是什么原因。

4

0 回答 0