博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MKNetworkKit下载图片并显示在UIImageView上
阅读量:5050 次
发布时间:2019-06-12

本文共 2033 字,大约阅读时间需要 6 分钟。

点击按钮开始下载

- (IBAction)onClick:(id)sender {    NSMutableDictionary *imageDic = [[NSMutableDictionary alloc] init];    //获取本地沙箱的缓存路径    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);    NSString *cachesDirectory = paths[0];    NSString *downloadPath = [cachesDirectory stringByAppendingPathComponent:@"test1.jpg"];        //先从本地获取缓存图片    UIImage *image = [UIImage imageWithContentsOfFile:downloadPath];        //如果从本地缓存中获取为空,那么再从应用资源中获取一次    if (image == nil) {        image = [UIImage imageNamed:@"test1.jpg"];    }        if (nil != image) {        [imageDic setObject:image forKey:@"image"];        NSLog(@"缓存有图片!");        _imageView1.image = image;    }        //如果本地缓存图片为空,则远程请求,并缓存到本地    if(image == nil) {                NSString *path = [[NSString alloc] initWithFormat:@"/service/download.php?email=%@&FileName=test1.jpg",@"gs.654586026@qq.com"];        path = [path stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];            MKNetworkEngine *engine = [[MKNetworkEngine alloc] initWithHostName:@"51work6.com" customHeaderFields:nil];            MKNetworkOperation *downloadOperation = [engine operationWithPath:path params:nil httpMethod:@"POST"];        [downloadOperation addDownloadStream:[NSOutputStream outputStreamToFileAtPath:downloadPath append:TRUE]];            [downloadOperation onDownloadProgressChanged:^(double progress) {        NSLog(@"download progress: %.2f%%", progress*100.0);        _progressView.progress = progress;        }];            [downloadOperation addCompletionHandler:^(MKNetworkOperation *operation) {                NSLog(@"download file finished!");        UIImage *image = [UIImage imageWithContentsOfFile:downloadPath];        _imageView1.image = image;                    } errorHandler:^(MKNetworkOperation *errorOp, NSError* err) {            NSLog(@"MKNetwork请求错误 : %@", [err localizedDescription]);        }];    [engine enqueueOperation:downloadOperation];    }}

  

转载于:https://www.cnblogs.com/saurik/p/4810201.html

你可能感兴趣的文章
WebService中的DataSet序列化使用
查看>>
BZOJ 1200 木梳
查看>>
【Linux】【C语言】菜鸟学习日志(一) 一步一步学习在Linxu下测试程序的运行时间...
查看>>
hostname
查看>>
SpringBoot使用其他的Servlet容器
查看>>
关于cookie存取中文乱码问题
查看>>
k8s架构
查看>>
select 向上弹起
查看>>
mysql 多表管理修改
查看>>
group by order by
查看>>
bzoj 5252: [2018多省省队联测]林克卡特树
查看>>
https 学习笔记三
查看>>
Oracle学习之简单查询
查看>>
log4j配置
查看>>
linux 配置SAN存储-IPSAN
查看>>
双链表
查看>>
java学习笔记之String类
查看>>
pymysql操作mysql
查看>>
Linux服务器删除乱码文件/文件夹的方法
查看>>
牛腩记账本core版本源码
查看>>