在下载方法中:
[manager GET:url parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
//写缓存
NSString *cachePath = @"你的缓存路径";// /Library/Caches/MyCache
[data writeToFile:cachePath atomically:YES];
succsee(data);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
}];
然后在每次下载前,进行如下判断:
NSString * cachePath = @"你的缓存路径";
if ([[NSFileManager defaultManager] fileExistsAtPath:cachePath]) {
//从本地读缓存文件
NSData *data = [NSData dataWithContentsOfFile:cachePath];
}
有时,我们的下载请求可能是用户的动作触发的,比如一个按钮。我们还应该做一个保护机制的处理,
//初始化一个下载请求数组
NSArray * requestArray=[[NSMutableArray alloc]init];
//每次开始下载任务前做如下判断
for (NSString * request in requestArray) {
if ([url isEqualToString:request]) {
return;
}
}
[requestArray addObject:url];
//下载成功或失败后
[manager GET:url parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
[requestArray removeObject:url]
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
[requestArray removeObject:url]
}];
至此,一个比较完成AFNETWorking请求使用流程就完成了。