Ios4 设备脱机时使用NSURLConnection缓存
在NSOperation子类中,我使用以下代码从我们的服务器下载xml文件,然后稍后解析它: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
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的情况下实现这一点的额外答案,那将是非常好的。。。