设备脱机时使用NSURLConnection缓存

时间:2012-01-19 14:21:11

标签: ios4 ios5 nsurlconnection offline-caching nsurlcache

在NSOperation子类中,我使用以下代码从我们的服务器下载xml文件,然后再解析它:

NSURLRequest * request = [NSURLRequest requestWithURL:[NSURL URLWithString:url] 
                                          cachePolicy:NSURLRequestUseProtocolCachePolicy
                                      timeoutInterval:15];
NSData * receivedData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

第二次发出相同的请求时,服务器返回HTTP 304,缓存的响应数据存储在receivedData中。到目前为止一切都很好。

我的问题:是否有可能在设备离线时获得相同的缓存响应

1 个答案:

答案 0 :(得分:0)

NSURLCache不支持磁盘缓存。您可以手动存储它或使用它: https://github.com/steipete/SDURLCache

非常简单的缓存可以完成它的工作...非常简单的用法,只有一个类...它也支持etags。



    // Do this only once in your app...
    SDURLCache *urlCache = [[SDURLCache alloc] initWithMemoryCapacity:1024*1024   // 1MB mem cache
                                                         diskCapacity:1024*1024*5 // 5MB disk cache
                                                             diskPath:[SDURLCache defaultCachePath]];
    [NSURLCache setSharedURLCache:urlCache];
    [urlCache release];


相关问题