在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
中。到目前为止一切都很好。
我的问题:是否有可能在设备离线时获得相同的缓存响应?
答案 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];