• iPhone缓存网络数据


    本文转载至 http://blog.csdn.net/wwang196988/article/details/7542918 

     

     
    在iPhone应用程序中,我们经常要用去网络下载一些文件,比如xml,图片等等!但是往往我们经常是需要反复读取这部分数据,或者我们要写一些文件在沙箱中,供下次打开程序的时候使用,这时候我们就需要用到缓存文件(读写文件),今天和大家分享一个Demo,用来缓存从网上下载下来的图片和xml;
    项目背景:
    下载从网络下载图片,并写在temp目录下,temp目录下的文件在程序退出时会被清空,所以用来写本次要用的缓存内容很合适(我这么觉得)。
    1、从一个url下载图片
    NSURL *url = [NSURL URLWithString:@"http://*****.png"];

    NSData *data = [NSData dataWithContentsOfURL:url];

    UIImage *img = [UIImage imageWithData:data];

    注:这是一种最普通最普通的图片下载方式,这种方式不太好,稍后我将和大家分享一下其他的下载方式

    2、获取temp目录

    -(NSString *)GetTempPath:(NSString*)filename{

    NSString *tempPath = NSTemporaryDirectory();

    return [tempPath stringByAppendingPathComponent:filename];

    }

    我们将要缓存的图片名传进去,得到完整的temp路径

    3、将数据写入改路径

    [data writeToFile:[self GetTempPath:@"test.png"] atomically:NO];

    这里用到NSData的writeToFile方法,可以在API中找到更详细的解释

    第一个参数:将数据写入的路径

    第二个参数:是否覆盖原有文件YES为覆盖 NO则相反

    方法返回一个BOOL类型的值,YES表示写入成功

    4、判断路径下的文件是否已经存在

    -(BOOL)isExistsFile:(NSString *)filepath{

    NSFileManager *filemanage = [NSFileManager defaultManager];

    return [filemanage fileExistsAtPath:filepath];

    }

    BOOL exist = [self isExistsFile:[self GetTempPath:@"test.png"]];

    exist=YES表示文件已经存在

    NO表示不存在

    到这里,同类的问题都可以解决了吧。当然不仅仅是可以将图片保存到temp目录,其他的文件也行。当然也可以保存在document目录,这样我们可以长时间持有它。稍后将和大家分享document目录下的保存读取操作!

  • 相关阅读:
    【二十五】cookie与session学习总结
    【二十四】使用mysqli扩展类批量执行多条sql语句
    【二十三】php之预定义超全局变量
    【二十二】mysqli事务处理与预处理总结
    【二十一】基于mysqli的表格数据练习
    【二十】mysqli基于面向过程与面向对象的编程
    为什么所有浏览器的userAgent都带Mozilla
    如何快速的搜索自己想要的资料
    从汇编看c++成员函数指针(三)
    从汇编看c++中指向成员变量的指针(二)
  • 原文地址:https://www.cnblogs.com/Camier-myNiuer/p/4191333.html
Copyright © 2020-2023  润新知