zoukankan      html  css  js  c++  java
  • 详解iPhone应用开发中缓存文件

    iPhone应用开发中缓存文件是本文要介绍的内容,在iPhone应用程序中,我们经常要用去网络下载一些文件,比如xml,图片等等!但是往往我们经常是需要反复读取这部分数据,或者我们要写一些文件在沙箱中,供下次打开程序的时候使用,这时候我们就需要用到缓存文件(读写文件),今天和大家分享一个Demo,用来缓存从网上下载下来的图片和xml;

    项目背景:

    下载从网络下载图片,并写在temp目录下,temp目录下的文件在程序退出时会被清空,所以用来写本次要用的缓存内容很合适(我这么觉得)。
    1、从一个url下载图片

    1. NSURL *url = [NSURL URLWithString:@"http://*****.png"];  
    2. NSData *data = [NSData dataWithContentsOfURL:url];  
    3. UIImage *img = [UIImage imageWithData:data]; 

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

    2、获取temp目录

    1. -(NSString *)GetTempPath:(NSString*)filename{  
    2. NSString *tempPath = NSTemporaryDirectory();  
    3. return [tempPath stringByAppendingPathComponent:filename];  

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

    3、将数据写入改路径

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

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

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

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

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

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

    1. -(BOOL)isExistsFile:(NSString *)filepath{  
    2. NSFileManager *filemanage = [NSFileManager defaultManager];  
    3. return [filemanage fileExistsAtPath:filepath];  
    4. }  
    5. BOOL exist = [self isExistsFile:[self GetTempPath:@"test.png"]]; 

    exist=YES表示文件已经存在

    NO表示不存在

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

  • 相关阅读:
    XML(学习笔记)
    css样式学习笔记
    Request(对象)
    sql一些错误修改的总结
    转载(如何学习C#)
    sql server(学习笔记2 W3Cschool)
    sql sqrver(学习笔记1 W3Cschool)
    关于 flutter开发碰到的各种问题,有的已经解决有的一直没解决或者用其他方法替代
    关于 Flutter IOS build It appears that your application still contains the default signing identifier.
    关于 flutter本地化问题 The getter 'pasteButtonLabel' was called on null
  • 原文地址:https://www.cnblogs.com/top5/p/2506558.html
Copyright © 2011-2022 走看看