我正在尝试使用 NSURLCache 以便我的应用程序将保存来自 Web 服务器的 JSON 响应,而不是过多地请求它。
我已添加Cache-Control:Max-Age=604800
到请求中的响应标头中。
我在我的应用 AppDelegate.m 文件中添加了以下代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//set up the URL cache
NSURLCache *URLCache = [[NSURLCache alloc] initWithMemoryCapacity:4 * 1024 * 1024
diskCapacity:20 * 1024 * 1024
diskPath:nil];
[NSURLCache setSharedURLCache:URLCache];
}
我在代码中的请求如下所示:
NSString *myURLString = [NSString stringWithFormat:@"http://domain.com/api/?location=%@,%@&date=%@&method=%@", latitude, longitude, curDate, methodString];
NSLog(@"%@", myURLString);
NSURL *url = [NSURL URLWithString:myURLString];
NSData *jsonData = [NSData dataWithContentsOfURL:url];
我认为这不起作用,因为在使用仪器网络配置文件运行时,每次加载视图时我都会看到网络请求的峰值,如果我加载应用程序然后将手机置于平面模式,则不会加载数据(而我怀疑它会使用缓存)。
这是否证明没有制作/使用缓存?而且,如果是这样,有没有人有任何想法,为什么不呢?而且,如果不是证据,有谁知道我怎样才能更好地测试缓存?
非常感谢。