詳解iPhone應(yīng)用開發(fā)中緩存文件
iPhone應(yīng)用開發(fā)中緩存文件是本文要介紹的內(nèi)容,在iPhone應(yīng)用程序中,我們經(jīng)常要用去網(wǎng)絡(luò)下載一些文件,比如xml,圖片等等!但是往往我們經(jīng)常是需要反復(fù)讀取這部分?jǐn)?shù)據(jù),或者我們要寫一些文件在沙箱中,供下次打開程序的時(shí)候使用,這時(shí)候我們就需要用到緩存文件(讀寫文件),今天和大家分享一個(gè)Demo,用來緩存從網(wǎng)上下載下來的圖片和xml;
項(xiàng)目背景:
下載從網(wǎng)絡(luò)下載圖片,并寫在temp目錄下,temp目錄下的文件在程序退出時(shí)會(huì)被清空,所以用來寫本次要用的緩存內(nèi)容很合適(我這么覺得)。
1、從一個(gè)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];
 - }
 
我們將要緩存的圖片名傳進(jìn)去,得到完整的temp路徑
3、將數(shù)據(jù)寫入改路徑
- [data writeToFile:[self GetTempPath:@"test.png"] atomically:NO];
 
這里用到NSData的writeToFile方法,可以在API中找到更詳細(xì)的解釋
第一個(gè)參數(shù):將數(shù)據(jù)寫入的路徑
第二個(gè)參數(shù):是否覆蓋原有文件YES為覆蓋 NO則相反
方法返回一個(gè)BOOL類型的值,YES表示寫入成功
4、判斷路徑下的文件是否已經(jīng)存在
- -(BOOL)isExistsFile:(NSString *)filepath{
 - NSFileManager *filemanage = [NSFileManager defaultManager];
 - return [filemanage fileExistsAtPath:filepath];
 - }
 - BOOL exist = [self isExistsFile:[self GetTempPath:@"test.png"]];
 
exist=YES表示文件已經(jīng)存在
NO表示不存在
到這里,同類的問題都可以解決了吧。當(dāng)然不僅僅是可以將圖片保存到temp目錄,其他的文件也行。當(dāng)然也可以保存在document目錄,這樣我們可以長(zhǎng)時(shí)間持有它。稍后將和大家分享document目錄下的保存讀取操作!
小結(jié):詳解iPhone應(yīng)用開發(fā)中緩存文件的內(nèi)容介紹完了,希望本文對(duì)你有所幫助!















 
 
 
 
 
 
 