今天在使用SDWebimage下载图片时需要获取下载的进度
使用[SDWebImageManager sharedManager]
- (id <SDWebImageOperation>)downloadImageWithURL:(NSURL *)urloptions:(SDWebImageOptions)options
progress:(SDWebImageDownloaderProgressBlock)progressBlock
completed:(SDWebImageCompletionWithFinishedBlock)completedBlock
发现progressBlock参数中的expectedsize一直为0.
经过google、百度各种搜索,终于解决了这个问题。
这个因为NSHTTPURLResponse中
Accept-Encoding为gzip造成的
当遇到Accept-Encoding为gzip时,expectedsize会变为-1不确定的大小
此时在sdwebimage中expectedsize判断小于0,就会赋值为0
所以如果确定文件的大小时,可以将Accept-Encoding修改成非gzip的就可以获取需要的文件大小了
本文讨论了在使用SDWebimage下载图片时遇到的问题:在progressBlock参数中的expectedsize一直为0的情况。原因在于NSHTTPURLResponse中Accept-Encoding为gzip造成expectedsize可能变为-1不确定的大小。通过将Accept-Encoding修改成非gzip的方式,可以解决获取文件大小的问题。

324

被折叠的 条评论
为什么被折叠?



