我遇到了下一个方法的下一个问题
+ (NSString *)sendRequest:(NSMutableURLRequest *)request {
NSHTTPURLResponse *response;
NSError *error;
NSData *responseData;
[request setCachePolicy:NSURLRequestReturnCacheDataElseLoad];
responseData = [NSURLConnection sendSynchronousRequest:reqq returningResponse:&response error:&error];
//actions with responseData.
}
我注意到数据永远不会缓存此请求。缓存仍为空。有没有办法用同步连接缓存响应数据,还是应该重新设计我接收异步连接数据的方式?
由于
答案 0 :(得分:0)
NSURLCache通过将NSURLRequest对象映射到NSCachedURLResponse对象来实现对URL加载请求的响应的缓存。 NSURLCache为应用程序的URL请求提供了复合内存和磁盘上缓存机制。
在didFinishLaunchingWithOptions:
方法中使用此代码并设置http请求缓存策略
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSURLCache *URLCache = [[NSURLCache alloc] initWithMemoryCapacity:4 * 1024 * 1024
diskCapacity:20 * 1024 * 1024
diskPath:nil];
[NSURLCache setSharedURLCache:URLCache];
}
请参阅this博客了解详情