美文网首页
8.AFNetworking实现图片下载

8.AFNetworking实现图片下载

作者: 峰子1994 | 来源:发表于2017-10-28 10:24 被阅读10次

    1.AFNetworking实现图片下载的代码:

    //默认的配置
        NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
        //1.创建会话者管理
        AFURLSessionManager *manager = [[AFURLSessionManager alloc]initWithSessionConfiguration:configuration];
        //2.创建下载任务了
        NSURL *url = [NSURL URLWithString:@"http://dldir1.qq.com/qqfile/QQforMac/QQ_V5.4.0.dmg"];
        //3.创建请求
        NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
        //4.开始去请求了 (创建的任务是挂起来的)
        /**
         * 第一个参数 - request:请求对象
         * 第二个参数 - progress:下载进度block
         *      其中: downloadProgress.completedUnitCount:已经完成的大小
         *            downloadProgress.totalUnitCount:文件的总大小
         * 第三个参数 - destination:自动完成文件剪切操作
         *      其中: 返回值:该文件应该被剪切到哪里
         *            targetPath:临时路径 tmp NSURL
         *            response:响应头
         * 第四个参数 - completionHandler:下载完成回调
         *      其中: filePath:真实路径 == 第三个参数的返回值
         *            error:错误信息
         */
        NSURLSessionDownloadTask *task =  [manager downloadTaskWithRequest:request progress:^(NSProgress * _Nonnull downloadProgress) {
            __weak typeof(self) weakSelf = self;
            // 获取主线程,不然无法正确显示进度。
            NSOperationQueue *mainqueue = [NSOperationQueue mainQueue];
            [mainqueue addOperationWithBlock:^{
               //下载的进度
                weakSelf.progressView.progress = 1.0 * downloadProgress.completedUnitCount / downloadProgress.totalUnitCount;
                weakSelf.currentLabel.text = [NSString stringWithFormat:@"当期下载进度%.2f%%",100.0 * downloadProgress.completedUnitCount / downloadProgress.totalUnitCount];
            }];
        } destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) {
            NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
            // 新文件路径
            NSString *newFilePath = [documentsPath stringByAppendingPathComponent:@"QQ_V5.4.0.dmg"];
            return [NSURL URLWithString:newFilePath];
        } completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) {
            NSLog(@"filePath:%@",filePath);
        }];
        //开始下载任务了
        [task resume];
    

    相关文章

      网友评论

          本文标题:8.AFNetworking实现图片下载

          本文链接:https://www.haomeiwen.com/subject/lhijpxtx.html