1. ホーム
  2. cocoa-touch

[解決済み] NSURLRequestがデータをキャッシュしないようにしたり、リクエスト後にキャッシュされたデータを削除することは可能ですか?

2023-03-30 09:41:21

質問

iPhone で、NSURLRequest を使用して HTTP リクエストを実行し、データのチャンクを取得します。オブジェクトの割り当てが急増し、私はそれに応じてデータを割り当てました。しかし、機器には、解放されたデータが表示されません!

私はデータで終わるとき、私はそれに応じてそれを解放します。

私の理論では、デフォルトで HTTP リクエストはキャッシュされますが、私の iPhone アプリがこのデータをキャッシュすることは望んでいません。

リクエスト後にこのキャッシュをクリアする方法、またはそもそもデータがキャッシュされるのを防ぐ方法はありますか?

私は、以下のように少し文書化されたすべてのキャッシュポリシーを使用してみました。

NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]];
theRequest.cachePolicy = NSURLRequestReloadIgnoringLocalCacheData;

が、何もメモリが解放されないようです!

どのように解決するのですか?

通常、次のようなリクエストを作成するのが簡単です。

NSURLRequest *request = [NSURLRequest requestWithURL:url
      cachePolicy:NSURLRequestReloadIgnoringCacheData
      timeoutInterval:60.0];

次に、接続を作成します。

NSURLConnection *conn = [NSURLConnection connectionWithRequest:request
       delegate:self];

で、connection:willCacheResponse: メソッドをデリゲートで実装します。nilを返すだけでOKです。

- (NSCachedURLResponse *)connection:(NSURLConnection *)connection willCacheResponse:(NSCachedURLResponse *)cachedResponse {
  return nil;
}