為了節約流量,同時也是為了更好的用戶體驗,目前很多應用都使用本地緩存機制於是我從網上查閱了相關的資料,發現總體上說有兩種方法。一種是自己寫緩存的處理,一種是采用ASIHTTPRequest中的ASIDownloadCache。
在這裡我主要介紹第一種自習寫緩存的處理方式。
1.主要思路就是第一次有網絡加載數據將數據寫入沙盒中,然後以後登錄對網絡狀態進行判斷,若無網絡就使用沙盒數據,有網絡就請求API獲得數據.
//寫入數據
NSArray *arr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSAllDomainsMask, YES);
//獲得沙盒路徑
NSString*path = [arr =objectAtIndex:0];
NSString*pStr = [path=stringByAppendingString:@"/data.txt"];
NSData *data1=NSData dataWithContentsOfFile:pStr];
//獲得沙盒數據
NSArray*array=[NSKeyedUnarchiver unarchiveObjectWithData:data1];
但是這種方式要注意,就是緩存數據會越來越多,所以基本APP都在個人設置裡有個刪除緩存的方法
//刪除緩存
NSFileManager * fileManager = [[NSFileManager alloc]init];
[fileManager removeItemAtPath:path error:nil];