• 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;
    //if it is not nil,replace default expire time with 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的子类来完成相同的功能。

     
     
  • 相关阅读:
    xml ui
    xml ui
    xml ui
    debug
    centOS7 mini配置linux服务器(一)安装centOs7
    数据结构之__链表
    数据结构之__队列
    数据结构之__栈
    在树莓派上使用 SSD1306 OLED 屏幕
    git官方手册
  • 原文地址:https://www.cnblogs.com/xu-antong/p/6503427.html
Copyright © 2020-2023  润新知