发布于 2015-06-04 03:56:05 | 199 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的精品教程,程序狗速度看过来!

MKNetworkKit iOS网络工具包

MKNetworkKit 是一个 O-C 编写的网络框架,支持块,ARC且用法简单。MKNetworkKit集 ASIHTTPRequest 和 AFNetworking 两个框架于一体。ASIHTTPRequest 框架是一个用O-C编写,对 CFNetwork API 进行了封装,并且使用简便的一套API,可以用于各种从简单到复杂的HTTP请求,或者可用于处理Amazon S3、Rackspace等REST服务的强大框架,可以说是网络框架的终结者,但是Ben在2011年9月21日就已经声明停止开发和支持该框架。而 AFNetworking相对于只有两个类的MKNetworkKit框架,便显得有些繁琐了。


MKNetworkKit 是一个 O-C 编写的网络框架,支持块,ARC且用法简单。MKNetworkKit集 ASIHTTPRequest 和 AFNetworking 两个框架于一体。ASIHTTPRequest 框架是一个用O-C编写,对 CFNetwork API 进行了封装,并且使用简便的一套API,可以用于各种从简单到复杂的HTTP请求,或者可用于处理Amazon S3、Rackspace等REST服务的强大框架,可以说是网络框架的终结者,但是Ben在2011年9月21日就已经声明停止开发和支持该框架。而 AFNetworking相对于只有两个类的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的子类来完成相同的功能。



最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务