最近的APP要做缓存的功能,我之前做的都是简单的缓存一页的数据,这次老大说需求的把项目中的图片缓存下来,最好能做到断网之后还可以查看的境界,这你难为了我!不过还是要做的!
首先,我理清了以下思路:
1.将responseObject里获取的json数据通过model层解析之后存到一个数组中。直接对数组进行操做。
2.因为存在数组中的时解析过的数据所以可以通过这些数据进行查询。
3.oc里对于数组的操作用的[self.testarray removeObject:xxx];
我想到了用SQLite来保存数据,但是卡在了一个问题上,当我要保存数据中的图片时候,我必须要先把图片从网下下载转换成data来下,然后才可以保存到数据库当中,当我要显示数据的时候,我要从数据库里拿到对应的图片的data类型转为图片再显示出来,这样大大占用了内存,且效率不是很高!
然后我想到了用归档来实现缓存,也遇到了问题,主要是保存数据的时候挺简单,但是取数据的时候就难了,因为无法取到分页的数据展示在界面上!这一个问题又困扰了我好久(水平不够吧!)。
最终,我想到了一个比较好的方法,我用SQLite来保存普通的数据,包括id、标题、图片的URL等,然后再用归档的方式来保存下载的图片,这样一来,就实现了怎样离线缓存数据的功能!
我用SQLite和这个库 实现图片缓存然后完美实现离线缓存!
本人攻城狮一只:
爱好阅读,有一个写作的美梦,喜欢乒乓球,游泳,旅游,每天过着充实而忙碌的生活!
2016年没啥愿望,存钱还房贷,写50篇读书笔记和技术笔记就好!
喜欢我的文字,就关注我吧,希望能共同进步