MKNetworkKit自定义缓存有效时间

MKNetworkkit是一个非常好用、轻量的网络请求框架。可以支持自动缓存。 但是在某些情况下,我们要求数据可以实时被更新,比如下单之后,订单状态的刷新、商品状态的刷新等。 MKNetworkkit有一个用于控制缓存有效时间的变量,叫MKNetworkKitDefaultCacheDuration。这个变量在MKNetworkKit.h中被预定义

// MKNetworkKit.h#define kMKNetworkKitDefaultCacheDuration 60 // 1 minute

我们全局搜索后可以发现这个变量在MKNetworkOperation.m中被使用

expiresOnDate = [[NSDate date] dateByAddingTimeInterval:kMKNetworkKitDefaultCacheDuration];

由此可知,这个expiresOnDate就是用来控制缓存生命周期的变量。 如果需要自定义缓存时间,可以自定义一个MKNetworkOperation的子类。这里为了简单演示,,就直接在MKNetworkOperation类里面修改。

首先在MKNetworkOperation.h文件定义property的地方写上

@property (nonatomic, strong) NSString *customExpireTime;//this

然后找到这行代码的位置

expiresOnDate = [[NSDate date] dateByAddingTimeInterval:kMKNetworkKitDefaultCacheDuration];

并把它修改为

if (self.customExpireTime) {int expireSeconds = [self.customExpireTime intValue];expiresOnDate = [[NSDate date] dateByAddingTimeInterval:expireSeconds];}else{expiresOnDate = [[NSDate date] dateByAddingTimeInterval:kMKNetworkKitDefaultCacheDuration];}

在使用的时候,如果需要自定义缓存有效时间的话,只需要加上这样一行代码

netOp = [appDelegate.netEngine operationWithPath:path];//加上下面这行代码,自定义缓存有效时间.netOp.customExpireTime = [NSString stringWithFormat:@”%d”,2];

当然,为了保证源代码的完整性,以及方便将来更新MKNetworkKit,还是推荐自定义一个MKNetworkOperation的子类来完成相同的功能。

只剩下一条路,那就是成功的路。

MKNetworkKit自定义缓存有效时间

相关文章:

你感兴趣的文章:

标签云: