详解iPhone应用开发中缓存文件

移动开发 iOS
本文介绍的是iPhone应用开发中缓存文件,打开程序时需要用到缓存文件(读写文件),今天和大家分享一个Demo,用来缓存从网上下载下来的图片和xml; 来看详细内容。

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目录下的保存读取操作!

小结:详解iPhone应用开发中缓存文件的内容介绍完了,希望本文对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-08-10 17:37:00

iPhoneASIHTTPRequ

2011-08-15 11:37:20

iPhone开发Mask

2011-08-17 15:10:21

iPhone开发Web视图

2011-08-02 17:27:06

iPhone应用 剪切技巧

2011-07-27 11:14:37

iPhone UITableVie

2011-08-22 12:01:38

iPhone开发文件

2011-07-26 09:41:23

iPhone xcode Mac OS X

2011-08-12 10:04:24

iPhone开发视图

2011-08-17 15:19:38

iPhone应用数据

2011-08-03 17:18:58

iPhone UILabel UISlider

2011-08-09 14:08:51

iPhoneHTTP请求协议

2011-08-22 14:12:48

iPhone开发NSTableView

2011-08-15 15:44:46

iPhone开发PDF

2011-08-09 17:12:30

iPhoneCFRunLoop

2011-08-18 16:24:44

iPhone开发图片

2011-07-27 10:16:41

iPhone SQLite 数据库

2011-08-12 14:04:53

iPhone动画

2012-04-26 13:26:58

iPhone应用技巧

2011-08-12 13:35:23

iPhone文件流ASIHTTPRequ

2011-07-29 13:27:48

iPhone 开发 Nib
点赞
收藏

51CTO技术栈公众号