最近一个项目在请求数据时比较慢,界面显示非常的不友好,然后就想把上一次请求的数据给存储起来,当进入界面的时候先显示上一次的数据,然后当本次数据请求完毕时再进行此次数据的刷新
本人对数据操作不怎么熟悉,新人可以参考。在网上看了iOS数据本地化方法,我选了NSUserDefaults方法和文件写入的方法
一、NSUserDefaults
NSUserDefaults方法很简单,获取NSUserDefaults对象,然后和字典的操作差不多
存入数据
[[NSUserDefaults standardUserDefaults]setObject:dic forKey:@"infor"];//在以infor为key的数据中存入了dic数据
[[NSUserDefaults standardUserDefaults]synchronize];//NSUserDefaults是定时对文件进行存储,synchronize方法则是手动操作让文件立即进行存储操作
存入的对象是苹果原生的基本数据类型,如NSString、 NSNumber、NSDate、 NSArray、NSDictionary、BOOL、NSInteger、NSFloat等等,如果诗句是空,NSNull对象,那么就会报错,如果报错了可以查看一下数据是否为空。如果想存入对象等,可以先把数据转换为NSData数据,然后使用
- (void)setObject:(nullable id)value forKey:(NSString *)defaultName;
这个方法把数据存入
取出数据
NSDictionary *getDic = [[NSUserDefaults standardUserDefaults]objectForKey:@"infor"];
取出数据的方法也和字典差不多,通过一个key取出自己存储的数据。
NSUserDefaults适合存放一些小的,常用的数据,像登录名,登录密码,key等数据