HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何取消AFdownloadrequest操作并且不保留以前的进度(删除临时文件)iOS大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在从服务器下载文件.
我能够成功下载文件.
但每当我取消下载请求(中间)操作并重新开始下载.
下载从先前的进度开始(而不是从零开始).
但我想从零开始重新下载.

设置operation.deleteTempFiLeonCancel = YES;也没有帮助

当我取消之间的下载时,在给定的目标路径上没有创建文件

operation.tempPath is returning null (not able to delete temporary filE)

我使用以下代码

NSURLrequest *request = [NSURLrequest requestWithURL:[NSURL URLWithString:model.downloadUrl]];
     operation = [[AFDownloadrequestOperation alloc] initWithrequest:request targetPath:path shouldResume:YES];
     operation.deleteTempFiLeonCancel = YES;


            // download operation progressive block
            [operation setProgressiveDownloadProgressBlock:^(AFDownloadrequestOperation *operation,NSInteger bytesRead,long long @R_282_10586@lBytesRead,long long @R_282_10586@lBytesExpected,long long @R_282_10586@lBytesReadForFile,long long @R_282_10586@lBytesExpectedToReadForFilE)
             {
                 // calculate current download progress

                 }
             }];

            // download operation completion block
            [operation setCompletionBlockWithsuccess:^(AFhttprequestOperation *operation,id responSEObject)
             {


             } 

            failure:^(AFhttprequestOperation *operation,NSError *error) {

                 // operation Failed


             }];

           [operation start];

如果在中间取消下载然后再次启动,我想从零开始下载.我使用的是iOS 7

解决方法

好吧,我刚刚找到了解决方法.我会在这里发布,以防其他人有同样的问题.

在此行之后,您可以检查是否实际创建了tempPath

operation = [[AFDownloadrequestOperation alloc] initWithrequest:request targetPath:path shouldResume:YES];
NSLog("%@",operation.tempPath);

然后将该路径添加到字典中

NSString *tempPath = _operation.tempPath;
[self.tempPathDict setObject:tempPath forKey:your_key];

当您停止操作时,您可以调用代码

NSString *tempPath = [self.tempPathDict objectForKey:your_key];
// Cancel the operation you want
[operation cancel];
// Remove the tempFile 
NSError *error = [[NSError alloc] init];
[[NSFileManager defaultManager] removeItemAtPath:tempPath error:&error];
// And last remove the path from the Dictionary
[self.tempPathDict removeObjectForKey:your_key];

大佬总结

以上是大佬教程为你收集整理的如何取消AFdownloadrequest操作并且不保留以前的进度(删除临时文件)iOS全部内容,希望文章能够帮你解决如何取消AFdownloadrequest操作并且不保留以前的进度(删除临时文件)iOS所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。