IOS- 网络图片缓存到沙盒中 ,离线取出。
一、缓存图片
//1.首先创建在沙盒中创建一个文件夹用于保存图片
NSFileManager *fileManager = [[NSFileManager alloc] init];
NSString *pathDocuments = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *createPath = [NSString stringWithFormat:@"%@/Image", pathDocuments];
// 判断文件夹是否存在,如果不存在,则创建
if (![[NSFileManager defaultManager] fileExistsAtPath:createPath]) {
[fileManager createDirectoryAtPath:createPath withIntermediateDirectories:YES attributes:nil error:nil];
} else {
NSLog(@"FileDir is exists.");
}
for (int i = 0; i < viewsArray.count; i++) {
UIImageView * imageV = [[UIImageView alloc]initWithFrame:CGRectMake(screenWidth * i, 0, screenWidth, self.homePageview.height)];
[imageV sd_setImageWithURL:[viewsArray objectAtIndex:i]placeholderImage:[UIImage imageNamed:@"Moren6p.png"]];
UITapGestureRecognizer * tap =[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapAction:)];
[imageV addGestureRecognizer:tap];
imageV.userInteractionEnabled = YES;
[self.homePageview addSubview:imageV];
UIImage * image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[viewsArray objectAtIndex:i]]];
//2.缓存我所需要的图片
NSString *path_sandox = NSHomeDirectory();
//创建路径
NSString *CachePath = [NSString stringWithFormat:@"/Documents/Image/HomeScroll%d.png",i];
//设置一个图片的存储路径
NSString *imagePath = [path_sandox stringByAppendingString:CachePath];
//把图片直接保存到指定的路径(同时应该把图片的路径imagePath存起来,下次就可以直接用来取)
[UIImagePNGRepresentation(image) writeToFile:imagePath atomically:YES];
}
二、读取图片
//1.首先获取沙盒路径
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSFileManager *fileManage = [NSFileManager defaultManager];
NSString *CacheDocuments = [documentsDirectory stringByAppendingPathComponent:@"/Image”];//我把图片缓存到沙盒中的Document下得Image文件夹中
NSArray *CacheScrollImage = [fileManage subpathsOfDirectoryAtPath:CacheDocuments error:nil];//这个是获取Image文件夹下所有文件的文件名数组
//2.离线加载沙盒中缓存的图片
for (int i =0; i<CacheScrollImage.count; i++) {
NSString * CacheImage = [NSString stringWithFormat:@"Image/HomeScroll%d.png",i];
NSString *myDirectory = [documentsDirectory stringByAppendingPathComponent:CacheImage];
NSData *data = [fileManage contentsAtPath:myDirectory];
UIImage * image = [UIImage imageWithData:data];
}
IOS- 网络图片缓存到沙盒中 ,离线取出。的更多相关文章
- iOS - 沙盒中,如何判断存在文件、目录
在iOS开发中,在沙盒中创建沙盒一些存储各个功能的文件目录或者文件. 使用: [NSFileManager defaultManager] 1.判断目录,用她可以. 2.判断文件,用她可以. 3.创建 ...
- iOS篇之有沙盒缓存
内存指的就是主板上的存储部件,是CPU直接与之沟通,并用其存储数据的部件,存放当前正在使用的(即执行中)的数据和程序,它的物理实质就是一组或多组具备数据输入输出和数据存储功能的集成电路,内存只用于暂时 ...
- 关于ios项目沙盒中的文件和Xcode项目创建的文件
//1.1获取在Xcode项目打开的情况下创建的Plist文件 NSString *path = [[NSBundle mainBundle]pathForResource:@"Profes ...
- iOS 文件操作:沙盒(SandBox)、文件操作(FileManager)、程序包(NSBundle)
版权声明:本文为博主原创文章,转载请声明出处:http://blog.csdn.net/jinnchang 1.沙盒机制介绍 iOS 中的沙盒机制(SandBox)是一种安全体系.每个 iOS 应用程 ...
- Swift iOS 文件操作:沙盒(SandBox)、程序包(NSBundle)
1.沙盒机制介绍 iOS 中的沙盒机制(SandBox)是一种安全体系.每个 iOS 应用程序都有一个单独的文件系统(存储空间),而且只能在对应的文件系统中进行操作,此区域被称为沙盒.所有的非代码文件 ...
- 【精】iOS 文件操作:沙盒(SandBox)、文件操作(FileManager)、程序包(NSBundle)
1.沙盒机制介绍 iOS 中的沙盒机制(SandBox)是一种安全体系. 每一个 iOS 应用程序都有一个单独的文件系统(存储空间).并且仅仅能在相应的文件系统中进行操作,此区域被称为沙盒. 全部的非 ...
- iOS开发之获取沙盒路径
iOS开发之沙盒机制(SandBox)具体解说了沙盒的一些机制.在开发中,我们须要对沙盒进行操作.所以我们须要获取到沙盒路径. 沙盒里的目录包含Documents.Library.tmp.这三个目录的 ...
- 获取保存在沙盒中plist文件的用户的字典信息
获取保存在沙盒中plist文件的用户的字典信息
- iOS网络图片缓存详解
在开发移动应用的时候比如Android,IOS,因为手机流量.网速.内存等这些因素,当我们的移动应用是针对互联网,并要频繁访问网络的话,对网络优化这块就显得尤为重要了. 比如某个应用要经常显示网络图片 ...
随机推荐
- 【python】os模块
1.os.name 输出字符串指示正在使用的平台.如果是window 则用'nt'表示,对于Linux/Unix用户,它是'posix'. 2.os.getcwd() 函数得到当前工作目录,即当前Py ...
- EasyUI学习笔记
1,tabs获得被选中的标题 var tabTitle = $('#tabs').tabs('getSelected').panel('options').title;//获得被选中的标题 2.当设置 ...
- Handler 取不到session 解决办法
Handler需要继承 Handler : IHttpHandler, IReadOnlySessionState, IRequiresSessionState
- poj3020
define n the number of ' * ' define d the number of couple of two points define s ...
- 打造一个自动检测页面是否存在XSS的小插件
前言: 还记得刚玩Web安全时,就想着要是能有一个自动挖掘XSS漏洞的软件就好了.然后我发现了Safe3.JSky.AWVS.Netsparker等等,但是误报太多,而且特别占内存.后来发现了fidd ...
- 嵌入式linux移植LAMP服务器
一.工具准备工作 要想在ARM平台上移植一套Apache+Msql+PHP的Web型服务器. 所用物理机系统: Ubuntu 14.04 LTS(64位) 交叉编译环境: arm-linux-g ...
- javaSE第二十二天
第二十二天 312 1:登录注册IO版本案例(掌握) 312 2:数据操作流(操作基本类型数据的流)(理解) 313 (1)定义: 313 (2)流对象名称 313 (3 ...
- javaSE第十三天
第十三天 76 1. StringBuffer(掌握) 76 (1)说明: 77 (2)StringBuffer的构造方法 77 (3)StringBuffer的常见功能 ...
- C++利用注册表添加桌面右键新建菜单
对于程序员来说,新建一个cpp文件是再频繁不过的事情了. 为了方便,我们习惯在桌面右键新建文件,而不是新建一个文本文档,然后修改后缀名. 百度谷歌查询了一下,终于知道如何添加注册表. 手痒,抽出时间用 ...
- linux安装桌面环境(GNOME)VNC连接Linux
1.安装Gnome桌面 这里是使用的脚本安装.代码如下: 加附件 #!/bin/sh #This script is FREE and written by www.vpsyou.com # i ...