今天通过DEBUG发现一个现象
如果创建下载任务时,调用的是带block的方法:
- (NSURLSessionDownloadTask *)downloadTaskWithRequest:(NSURLRequest *)request completionHandler:(void (^)(NSURL *location, NSURLResponse *response, NSError *error))completionHandler;
则NSURLSessionDownloadDelegate的回调方法不会被调用:
- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask
didFinishDownloadingToURL:(NSURL *)location;
- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask
didWriteData:(int64_t)bytesWritten
totalBytesWritten:(int64_t)totalBytesWritten
totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite;
- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask
didResumeAtOffset:(int64_t)fileOffset
expectedTotalBytes:(int64_t)expectedTotalBytes;
所以,如果需要实现这几个回调方法,则不能在创建NSURLSessionDownloadTask时指定completionHandler
更奇怪的是,NSURLSessionUploadTask的行为并不一致,如果调用带block的方法:
- (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)request fromData:(NSData *)bodyData completionHandler:(void (^)(NSData *data, NSURLResponse *response, NSError *error))completionHandler;
则NSURLSessionTaskDelegate的回调方法,有的会被调用,另一些不会
这个方法不会被调用:
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task
didCompleteWithError:(NSError *)error;
而这个方法则会照样被调用:
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task
didSendBodyData:(int64_t)bytesSent
totalBytesSent:(int64_t)totalBytesSent
totalBytesExpectedToSend:(int64_t)totalBytesExpectedToSend;
不知道是不是我使用有什么问题
分享到:
相关推荐
IOS开发Swift用NSURLSessionDownloadTask实现后台下载
斯坦福ios7公开课纸牌源码(stanford ios7)
Xamarin.iOS 示例使用 NSUrlSessionUploadTask 在应用程序处于后台时上传文件。 设置 此示例包含 2 个项目,Xamarin.iOS 项目和 ASP.NET Web API 2 项目。 在 ASP.NET Web API 2 项目上: 编辑项目并配置您希望 ...
iOS编程实战 iOS7 美团翻译 iOS7 编程代码和书籍 全iOS7 编程代码和书籍 全iOS7 编程代码和书籍 全iOS7 编程代码和书籍 全iOS7 编程代码和书籍 全
移动互联网产品经理必备IOS7部件库 IOS7扁平化图标
ios7高级编程iOS7 Programming Cookbook,IOS电子书籍之一,欢迎下载
IOS7应用开发入门经典.第5版.pdf,Object-C 版IOS开发书籍 。
ios7图标集合AI
斯坦福 iOS7应用开发 assignment 3源代码(Stanford iOS7 已完成大部分作业要求 可供初学者参考
这是ios7下面二维码读取demo,xcode版本5.0
IOS7 Programming Cookbook
本篇文章主要介绍了iOS NSURLSessionDownloadTask实现文件断点下载的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
ios历史行为记录
在解决关于IOS7下Alert不能再AddsubView的问题时候,弄到的解决方法。用法基本和原来的UIAlertView一样 dismiss 用 close实现了
ios7自带的二维码扫描 代理里包含了ios7一下的zbar扫描和 ios7的自带的二维码扫描 需要真机测试
iOS7 Activation Bypass是一款用于绕过iCloud来激活IOS设备的工具,支持所有的IOS7.x版本的设备
Stanford 公开课 ios7开发课中所讲的所有作业源码
ios7 开发基础教程 英文版 Beginning iOS 7 Development Exploring the iOS SDK.pdf
iOS 7 极简风格PSD,UI开发必备
iOS 7 编程实战 英文版 iOS 7 编程实战 英文版 iOS 7 编程实战 英文版 iOS 7 编程实战 英文版 iOS 7 编程实战 英文版 iOS 7 编程实战 英文版 iOS 7 编程实战 英文版 中文版也有