IOS 图片下载
最近做一个ios程序的功能,要求图片在本地的话直接显示,不在本地则去网上下载,然后存储。到网上找完资料之后根据自己的理解实现了功能,下面说说思路。
实现一个继承imageview的类,这个类主要功能就是根据传来的图片名字判断本地是否存在该图片,不存在则下载,存在就直接显示。
- (void)drawrect:(cgrect)rect {
nsstring *docdir = [nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes) objectatindex:0];
nsstring *picpath = [docdir stringbyappendingpathcomponent:self.picname]; //获取路径
if ([[nsfilemanager defaultmanager] fileexistsatpath:picpath]) {
//存在图片的时候直接读取
nsdata *data = [nsdata datawithcontentsoffile:picpath];
self.thumbnail.image = [uiimage imagewithdata:data];
}
else{//开线程去下载并存储
[nsthread detachnewthreadselector:@selector(loadimage) totarget:self withobject:nil];
}
}
- (void)loadimage {
//下载图片
nsurl *url=[nsurl urlwithstring:@"https://www.baidu.com/img/baidu_sylogo1.gif"];
uiimage *img = [[uiimage alloc] initwithdata:[nsdata datawithcontentsofurl:url]];
self.thumbnail.image = img;
//存储图片
nsstring *docdir = [nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes) objectatindex:0];
nsstring *picpath=[docdir stringbyappendingpathcomponent:self.picname];
//将图片写到documents文件中
[uiimagepngrepresentation(self.thumbnail.image) writetofile: picpath atomically:yes];
//线程退出
[nsthread exit];
}
下一篇: php一些公用函数的集合
推荐阅读
-
Android中Glide实现超简单的图片下载功能
-
Android 实现IOS 滚轮选择控件的实例(源码下载)
-
iOS版微信6.1即将发布:增搜索最近的朋友圈内容和餐馆
-
iOS9 beta开放公测:你可以做小白鼠了
-
iPad Air快速升级到iOS7.1固件系统的两种方法
-
万兴优转如何将IOS刻录至DVD?万兴优转将视频刻录至DVD的方法介绍
-
苹果发布iOS13.1.3更新:修复不少问题!
-
解析php做推送服务端实现ios消息推送
-
php ios推送(代码)
-
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)