Ios 如何管理RESTKit v0.23.1的缓存

Ios 如何管理RESTKit v0.23.1的缓存,ios,caching,restkit,Ios,Caching,Restkit,我正在使用cocoapods的RESTKit v0.23.1。问题是,有时当我发送get请求时,与我从浏览器获得的结果相比,结果不是更新的副本。在模拟器上测试正常,但在iPhone4上运行时总是遇到问题。因此,我怀疑有一些缓存策略没有正确设置 到目前为止,通过网络搜索,我能找到的最接近的是,但是最好有代码示例来说明如何实现它 下面是我在整个应用程序中使用的典型get请求 [[RKObjectManager sharedManager] getObjectsAtPath:path

我正在使用cocoapods的RESTKit v0.23.1。问题是,有时当我发送get请求时,与我从浏览器获得的结果相比,结果不是更新的副本。在模拟器上测试正常,但在iPhone4上运行时总是遇到问题。因此,我怀疑有一些缓存策略没有正确设置

到目前为止,通过网络搜索,我能找到的最接近的是,但是最好有代码示例来说明如何实现它

下面是我在整个应用程序中使用的典型get请求

 [[RKObjectManager sharedManager] getObjectsAtPath:path
                                       parameters:param
                                          success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
                                          } failure:^(RKObjectRequestOperation *operation, NSError *error) {
                                          }];
更新-20140716

我尝试了以下方法:

1子类RKObjectManager-不工作

- (NSMutableURLRequest *)requestWithObject:(id)object
                                method:(RKRequestMethod)method
                                  path:(NSString *)path
                            parameters:(NSDictionary *)parameters
{
    NSMutableURLRequest *request = [super requestWithObject:object method:method path:path parameters:parameters];
    request.cachePolicy = NSURLRequestReloadIgnoringLocalAndRemoteCacheData;
    return request;
}
  [[NSURLCache sharedURLCache] removeAllCachedResponses];
2 Sandro Machado建议-不工作

- (NSMutableURLRequest *)requestWithObject:(id)object
                                method:(RKRequestMethod)method
                                  path:(NSString *)path
                            parameters:(NSDictionary *)parameters
{
    NSMutableURLRequest *request = [super requestWithObject:object method:method path:path parameters:parameters];
    request.cachePolicy = NSURLRequestReloadIgnoringLocalAndRemoteCacheData;
    return request;
}
  [[NSURLCache sharedURLCache] removeAllCachedResponses];
新发现是,当我第二次发送Get请求时,请求时间为0秒

2014-07-16 18:39:45.319 LoveByteTest[1203:942b] I restkit.network:RKObjectRequestOperation.m:220 
    GET 'http://xx-api.xxx.us/xx/xx/comments?auth_token=xxxx&commentable_id=1234&commentable_type=photo' (200 OK / 3 objects) 
    [request=0.0000s mapping=0.0217s total=0.0914s]

尝试使用:[[NSURLCache sharedURLCache]removeAllCachedResponses]

将无缓存控制头添加到响应中


它在不破坏客户端的情况下解决了缓存问题

这不是一个优雅的解决方案,但您可以尝试添加时间戳作为查询参数来强制缓存刷新。比如: