Ios4 设备脱机时使用NSURLConnection缓存

Ios4 设备脱机时使用NSURLConnection缓存,ios4,ios5,nsurlconnection,offline-caching,nsurlcache,Ios4,Ios5,Nsurlconnection,Offline Caching,Nsurlcache,在NSOperation子类中,我使用以下代码从我们的服务器下载xml文件,然后稍后解析它: NSURLRequest * request = [NSURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:NSURLRequestUseProtocolCachePolicy

在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
中。到目前为止还不错


我的问题:当设备脱机时,是否可以获得相同的缓存响应?

NSURLCache不支持磁盘缓存。您只需手动存储或使用以下方法:

这是一个非常简单的缓存来完成它的工作…非常简单的用法,只有一个类…它也支持ETag



    // 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];


我想你的意思是从
NSURLConnection
自动执行,而不仅仅是在本地手动存储数据,并在网络关闭时将其取出。不管怎样,数据都是缓存的,如果有办法在网络关闭时加载它,那就太棒了。ios5和ios6确实支持磁盘缓存。如果这里有一些关于如何在没有SDURLCache的情况下实现这一点的额外答案,那将是非常好的。。。