項目中需要在沒有網絡的時候也顯示數據,所以需要進行緩存。
開始想用FMDB來做,后來有些不好操作,最終決定用
NSKeyedArchiver/NSKeyedUnarchiver來做。
1.儲存數據
在網絡請求是進行歸檔
NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).lastObject;
NSString *filePath = [path stringByAppendingPathComponent:@"ForgetFairy"];
[NSKeyedArchiver archiveRootObject:dictionary toFile:filePath];
然后每次啟動應用的時候檢查網絡,如果沒有網絡,最從沙盒中取出數據
NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).lastObject;
NSString *filePath = [path stringByAppendingPathComponent:@"ForgetFairy"];
NSDictionary *dict = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];
最后進行reloadData
先這樣實現功能吧。性能什么的接下來再進行改進!