现在的开发中,对APP的要求越来越高,往往需要将上一次浏览过的东西进行缓存,这样,即使在下次未联网的状态下,我们也可以访问,提高了用户体验!而且,我们还能够省下不少流量哦!
那具体思路是怎样的呢?
第一,首先要存储,就应该考虑到怎样去存储,存在哪里?
ios中存储的方法有几种,1,使用沙盒Plist存取,但是,其存储的只能是NS开头的数据,比如NSArray,NSDictionary 2.preferences(属性列表)主要用于存取小的属性!3.NSCoding(nskeyedArchiver\nsKeyUnarchiver)这中存取会一次读取所有数据,上面山中方法都不适合数据缓存!因为都只能存取小数据!现在,要存取大数据,就必须使用数据库,现在我喜欢使用FMDB,因为它是介于SQLiter和coredata之间的,半封闭状态的框架,只需要传入完整的数据语句查询东西!这样我觉得更好哦!FMDB我将在后面篇章介绍!
第二,就是存什么?在哪里开始存?
要存什么呢?一般有两种,存对象模型和存请求返回来的数据!都是在请求结束之后存取,都是将请求的数据转化成为NSData然后存到SQLite中,需要设置一个字段专门存储对象模型,或者请求返回的这个数据,一般都是数组,需要遍历之后分条存储。当然为了区分不同账号,需要设置一个用户的字段哦!不然不同用户一登录之后,会把不同的数据查出来!(有过其它数据库经验的程序员一定知道!)
第三,读取数据!
到了这一步就简单了,只需要,在发送请求的数据中,直接从数据库中获取数据就可以了!主要是关乎到数据库语句的编写和数据的解析,如果是存的网络请求返回的数据(json/NSDictionary)格式,那么,直接返回,然后交给后面请求成功的代码进行解析即可,如果存储的是对象,那么,我们在解析的时候就需要让这些数据模型遵守NSCoding协议!这里介绍一个网络上特好用的框架,主要正对数据模型的转换,(MJExtends)框架,很好用哦!
讲到这里,离线缓存的思路已经非常清晰了!下面来看代码吧!!!(待续)!
离线缓存