ios中 对网络请求数据文件本地缓存

本文介绍了如何在iOS应用中实现网络请求数据的本地缓存,通过使用NSCoder类和NSCoding协议,将JSON或XML数据解析成NSArray或NSDictionary,然后将编码后的数据保存至沙盒。当需要时,再从沙盒中加载并解码数据。通过实现NSCoding协议,确保所有涉及的对象都可编码和解码,包括嵌套的model对象。
摘要由CSDN通过智能技术生成

之前对ios缓存机制不了解,期间走了很多弯路。以至于在原来公司的第一个项目没有能够提供缓存机制。全部数据都是实时的网络数据。后来经过自己向周围有经验的ios开发人员请教,了解到NSCoder类,以及NSCoding协议。

原来的思路是把本地下载下来的数据写道sqllite数据库中,但是以后用的时间没有办法确定写在数据库中的文件在界面上应该显示的位置。被这个问题纠结了好长时间。周围ios开发人员对缓存又不太熟悉。直到来到现在的公司才有合适的人给解决了这个问题。其实思路并不是很难。

 

1.首先,对下载下来的数据(json或xml)经过自己的解析,一般是存为NSArray或者NSDictionary的数据源对象。其中数据源中的每个对象(model)都要实现NSCoding协议。

Example:我们的项目中有一个表示活动的model类。其中有getter和setter方法,代码就不贴出来了。其中有userid,activityid,messageCount,memberCount等属性。在实现NSCodeing协议后。有两个协议方法要在model类中实现。代码如下:

#pragma mark – NSCoding

//keyfor value的key 不贴出

- (void)encodeWithCoder:(NSCoder*)aCoder {

    [aCoder encodeInt64:self.userIdforKey:1];

    [aCoder encodeInt64:self.activityidforKey:2];

    [aCoder encodeInteger:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值