一、缓存图片

//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- 网络图片缓存到沙盒中 ,离线取出。的更多相关文章

  1. iOS - 沙盒中,如何判断存在文件、目录

    在iOS开发中,在沙盒中创建沙盒一些存储各个功能的文件目录或者文件. 使用: [NSFileManager defaultManager] 1.判断目录,用她可以. 2.判断文件,用她可以. 3.创建 ...

  2. iOS篇之有沙盒缓存

    内存指的就是主板上的存储部件,是CPU直接与之沟通,并用其存储数据的部件,存放当前正在使用的(即执行中)的数据和程序,它的物理实质就是一组或多组具备数据输入输出和数据存储功能的集成电路,内存只用于暂时 ...

  3. 关于ios项目沙盒中的文件和Xcode项目创建的文件

    //1.1获取在Xcode项目打开的情况下创建的Plist文件 NSString *path = [[NSBundle mainBundle]pathForResource:@"Profes ...

  4. iOS 文件操作:沙盒(SandBox)、文件操作(FileManager)、程序包(NSBundle)

    版权声明:本文为博主原创文章,转载请声明出处:http://blog.csdn.net/jinnchang 1.沙盒机制介绍 iOS 中的沙盒机制(SandBox)是一种安全体系.每个 iOS 应用程 ...

  5. Swift iOS 文件操作:沙盒(SandBox)、程序包(NSBundle)

    1.沙盒机制介绍 iOS 中的沙盒机制(SandBox)是一种安全体系.每个 iOS 应用程序都有一个单独的文件系统(存储空间),而且只能在对应的文件系统中进行操作,此区域被称为沙盒.所有的非代码文件 ...

  6. 【精】iOS 文件操作:沙盒(SandBox)、文件操作(FileManager)、程序包(NSBundle)

    1.沙盒机制介绍 iOS 中的沙盒机制(SandBox)是一种安全体系. 每一个 iOS 应用程序都有一个单独的文件系统(存储空间).并且仅仅能在相应的文件系统中进行操作,此区域被称为沙盒. 全部的非 ...

  7. iOS开发之获取沙盒路径

    iOS开发之沙盒机制(SandBox)具体解说了沙盒的一些机制.在开发中,我们须要对沙盒进行操作.所以我们须要获取到沙盒路径. 沙盒里的目录包含Documents.Library.tmp.这三个目录的 ...

  8. 获取保存在沙盒中plist文件的用户的字典信息

    获取保存在沙盒中plist文件的用户的字典信息

  9. iOS网络图片缓存详解

    在开发移动应用的时候比如Android,IOS,因为手机流量.网速.内存等这些因素,当我们的移动应用是针对互联网,并要频繁访问网络的话,对网络优化这块就显得尤为重要了. 比如某个应用要经常显示网络图片 ...

随机推荐

  1. c# 利用 两个TREEVIEW控件完成TEENODE的鼠标拖动操作

    功能说明: 我们有两个TREEVIEW控件——TREEVIEW1,TREEVIEW2.Treeview1内有三个NODE,Treeview2内有三个NODE.将Treeview1内的NODE拖动到Tr ...

  2. 用PHP实现守护进程任务后台运行与多线程(php-resque使用说明)

    消息队列处理后台任务带来的问题 项目中经常会有后台运行任务的需求,比如发送邮件时,因为要连接邮件服务器,往往需要5-10秒甚至更长时间,如果能先给用户一个成功的提示信息,然后在后台慢慢处理发送邮件的操 ...

  3. Xcode Alcatraz插件管理介绍和使用

    Xcode Alcatraz插件管理介绍和使用http://www.jianshu.com/p/7a2484123bf6 1.简介 Alcatraz是一个能帮你管理Xcode插件丶模版及颜色配置的工具 ...

  4. Linux使用有线上网教程

    本人亲测Linux(Ubuntu kylin 14.04)有线上网方法,下面是步骤: 一,运行Terminal(终端),输入  sudo pppoeconf  命令,设置账号和密码后,其他的全选yes ...

  5. (五)、nodejs使用bootstrap的样式进行分页

    一.page方法 /****************************************************** * Created User: * Created Time: 201 ...

  6. Linux搭建NFS提供磁盘给Windows使用

    在Windows2008系统下设置挂载Linux服务器磁盘 一.系统环境 系统平台:CentOS release 5.8 (Final) NFS Server IP:X....X...153.157 ...

  7. Change Homepage Logo

     Open the following defination and changed them. 1. NEW_PS_LOGO (Image Type) - To change the logo.2. ...

  8. AppSetting ,connectionStrings配置节

    <appSettings> <!-- 当前使用的学校代码 --> <add key="DefaultCompanyID" value="cs ...

  9. sublime简单配置

    Preferences------->settings user { "font_face": "Courier New", "font_siz ...

  10. 前端培训教程 jquery半透明设置

    function setOpacity(eles){ $(eles).each(function(){ if($.browser.msie){ $(this).clone().empty().inse ...