我目前正在使用以下代码从网络服务(通过https)加载数据。
我需要一种方法将这些数据缓存到光盘。
理想情况下,流程就是这样。
是否已加载数据?
这怎么可能?
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);
}];
答案 0 :(得分:0)
要将数据写入文件,您可以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];
}