5

NSOperation サブクラスでは、次のコードを使用してサーバーから xml ファイルをダウンロードし、後で解析しています。

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

2 回目に同じ要求を行うと、サーバーは HTTP 304 を返し、キャッシュされた応答データは に保存されreceivedDataます。ここまでは順調ですね。

私の質問:デバイスがオフラインのときに、これと同じキャッシュされた応答を取得することは可能ですか?

4

1 に答える 1

0

NSURLCache はディスク キャッシュをサポートしていません。手動で保存するか、これを使用できます: https://github.com/steipete/SDURLCache

ジョブを実行するのは非常に単純なキャッシュです...非常に単純な使用方法で、クラスは 1 つだけです...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 に答える