缓存同步连接

时间:2014-01-22 11:41:05

标签: ios caching nsurlconnection synchronous

我遇到了下一个方法的下一个问题

+ (NSString *)sendRequest:(NSMutableURLRequest *)request {

NSHTTPURLResponse *response;
NSError *error;
NSData *responseData;
[request setCachePolicy:NSURLRequestReturnCacheDataElseLoad];

responseData = [NSURLConnection sendSynchronousRequest:reqq returningResponse:&response error:&error];

//actions with responseData.
}

我注意到数据永远不会缓存此请求。缓存仍为空。有没有办法用同步连接缓存响应数据,还是应该重新设计我接收异步连接数据的方式?

由于

1 个答案:

答案 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博客了解详情