メソッドを使用して Web ページをロードするために UIWebview を使用しましたloadRequest:
。そのシーンを終了するときに、[self.webView stopLoading];
webView を呼び出して解放します。
最初の起動時にアクティビティ モニターで実メモリが 4MB 増加したことが確認されましたが、複数回の起動/読み込みでは実メモリは増加していません。増加するのは 1 回だけです。
WebView の保持カウントを確認しました。正しい値、つまり 0 です。UIWebView がデータをキャッシュしていると思います。キャッシュを回避したり、キャッシュされたデータを削除したりするにはどうすればよいでしょうか。それとも、別の理由があるのでしょうか。
ベストアンサー1
実際に、 を閉じてもキャッシュされた情報が保持されるのではないかと思います。から をUIWebView
削除し、解放してから、新しい を作成してみました。新しい は、アドレスに戻ったときに、すべてを再ロードしなくても、どこにいたかを正確に記憶していました (以前のログイン状態を記憶していました)。UIWebView
UIViewController
UIWebView
そこで、いくつか提案があります。
[[NSURLCache sharedURLCache] removeCachedResponseForRequest:NSURLRequest];
これにより、特定のリクエストのキャッシュされた応答が削除されます。 で実行されたすべてのリクエストのキャッシュされた応答をすべて削除する呼び出しもありますUIWebView
。
[[NSURLCache sharedURLCache] removeAllCachedResponses];
その後、次の方法で関連する Cookie を削除してみてくださいUIWebView
。
for(NSHTTPCookie *cookie in [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]) {
if([[cookie domain] isEqualToString:someNSStringUrlDomain]) {
[[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie];
}
}
スイフト3:
// Remove all cache
URLCache.shared.removeAllCachedResponses()
// Delete any associated cookies
if let cookies = HTTPCookieStorage.shared.cookies {
for cookie in cookies {
HTTPCookieStorage.shared.deleteCookie(cookie)
}
}