只需要设置 MKNetworkOperation的 outputStream 。
[operation setDownloadStream:[NSOutputStream outputStreamToFileAtPath:@"/Users/mugunth/Desktop/DownloadedFile.pdf" append:YES]];
你可以设置多个 outputStream 到一个 operation,将同一文件保存到几个地方(例如其中一个是你的缓存目录,另一个用做你的工作目录)。
例4:
缓存图片的缩略图
对于下载图片,你可能需要提供一个绝对 URL 地址而不是一个路径。
MKNetworkEngine 的operationWithURLString:params:httpMethod: 方法根据绝对 URL地址来创建网络线程。
MKNetworkEngine 相当聪明。它会将同一个 URL 的多次 GET 请求合并成一个,当 operation 完成时它会通知所有的块。这显著提升了抓取图片 URL 以渲染缩略图的速度.
子类化 MKNetworkEngine然后覆盖图片的缓存目录及缓存的大小。如果你不想定制这二者,你可以直接调用 MKNetworkEngine中的方法来下载图片。这是我极力推荐的。
缓存operation
MKNetworkKit 默认会缓存所有请求。你所需要的仅仅是在你自己的 engine 中打开它。当执行一个 GET 请求时,如果上次的 response 已缓存,相应的 completion 块将用缓存的response 进行调用(瞬间)。要想知道 response 是否缓存,可以调用 isCachedResponse 方法,如下所示:
复制代码[op onCompletion:^(MKNetworkOperation *completedOperation) {
if([completedOperation isCachedResponse]) {
DLog(@"Data from cache");
}else {
DLog(@"Data from server");
}
DLog(@"%@", [completedOperation responseString]);










