Posted at

NSURLRequestのキャッシュを無効にする方法

More than 3 years have passed since last update.

NSURLRequestNSMutableURLRequestを特にオプションを指定せずに使うと、サーバーからのレスポンスをキャッシュしてしまいます。

キャッシュを無効にするには以下の様にcachePolicyNSURLRequestReloadIgnoringLocalCacheDataを指定します。

NSURLRequest *request = [NSURLRequest requestWithURL:baseURL

cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
timeoutInterval:10];

cachePolicyに指定できるオプションは以下のいずれかです。


効果

NSURLRequestUseProtocolCachePolicy
デフォルト。キャッシュが有り、それがまだ有効ならそれを使う。そうでなければサーバーから取得する。

NSURLRequestReloadIgnoringLocalCacheData
キャッシュを使用せず常にサーバーにリクエストする。

NSURLRequestReturnCacheDataElseLoad
キャッシュデータがどれだけ古かろうが、キャッシュが有ればそれを使う。キャッシュがない場合だけサーバーにリクエストする。

NSURLRequestReturnCacheDataDontLoad
キャッシュが有ればそれを使う。キャッシュがなければサーバーにリクエストすることなく失敗する。