5

在 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. 到目前为止,一切都很好。

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

4

1 回答 1

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


于 2012-01-30T10:59:45.433 回答