NSURLRequestやNSMutableURLRequestを特にオプションを指定せずに使うと、サーバーからのレスポンスをキャッシュしてしまいます。
キャッシュを無効にするには以下の様にcachePolicyにNSURLRequestReloadIgnoringLocalCacheDataを指定します。
.objectivec
NSURLRequest *request = [NSURLRequest requestWithURL:baseURL
cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
timeoutInterval:10];
cachePolicyに指定できるオプションは以下のいずれかです。
値 | 効果 |
---|---|
NSURLRequestUseProtocolCachePolicy | デフォルト。キャッシュが有り、それがまだ有効ならそれを使う。そうでなければサーバーから取得する。 |
NSURLRequestReloadIgnoringLocalCacheData | キャッシュを使用せず常にサーバーにリクエストする。 |
NSURLRequestReturnCacheDataElseLoad | キャッシュデータがどれだけ古かろうが、キャッシュが有ればそれを使う。キャッシュがない場合だけサーバーにリクエストする。 |
NSURLRequestReturnCacheDataDontLoad | キャッシュが有ればそれを使う。キャッシュがなければサーバーにリクエストすることなく失敗する。 |