Ios 对磁盘的网络缓存请求

Ios 对磁盘的网络缓存请求,ios,objective-c,caching,afnetworking-2,Ios,Objective C,Caching,Afnetworking 2,我目前正在使用下面的代码通过https从Web服务加载数据 我需要一种将这些数据缓存到光盘的方法 理想情况下,流程是这样的 数据加载了吗 如果否-从缓存读取 如果没有internet连接-从缓存读取 如果是-继续正常操作 这怎么可能呢 AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; [manager POST:@"someurl" parameters:parameters suc

我目前正在使用下面的代码通过https从Web服务加载数据

我需要一种将这些数据缓存到光盘的方法

理想情况下,流程是这样的

数据加载了吗

如果否-从缓存读取 如果没有internet连接-从缓存读取 如果是-继续正常操作 这怎么可能呢

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager POST:@"someurl" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    //NSLog(@"Error: %@", error);
}];

要将数据写入文件,可以使用NSJSONSerialization将响应对象转换为NSData,然后将数据保存到文件:

NSString* filePath [NSTemporaryDirectory() stringByAppendingPathComponent:@"someFile.json"];
NSData* data = [NSJSONSerialization dataWithJSONObject:responseObject options:NSJSONWritingPrettyPrinted error:nil];
[data writeToFile:filePath options:0 error:nil];
然后,在发出请求之前,请检查文件是否存在并从中读取,而不是执行请求:

NSData* jsonData = [NSData dataWithContentsOfFile:filePath];
if(jsonData == nil){
    // Perform network request
}else{
    id responseObject = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:nil];
}