iPhone應用開發中快取檔案是本文要介紹的內容,在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目錄下的儲存讀取操作!
小結:詳解iPhone應用開發中快取檔案的內容介紹完了,希望本文對你有所協助!