iPhone에서 UIWebView 캐시를 지우는 방법

나는 실제로 UIWebView를 닫을 때 캐시된 정보를 유지할 수 있다고 생각합니다.내 UIViewController에서 UIWebView를 제거하고 해제한 다음 새 항목을 만들려고 시도했습니다.새 항목은 내가 다시 돌아왔을 때 내가 있었던 위치를 정확히 기억했습니다. 모든 것을 다시 로드할 필요 없이 주소(이전 UIWebView가 로그인되어 있음을 기억함).
따라서 몇 가지 제안:
[[NSURLCache sharedURLCache] removeCachedResponseForRequest:NSURLRequest]; 
이렇게 하면 특정 요청에 대한 캐시된 응답이 제거되며 UIWebView에서 실행된 모든 요청에 ​​대해 캐시된 모든 응답을 제거하는 호출도 있습니다.
[[NSURLCache sharedURLCache] removeAllCachedResponses]; 
그런 다음 UIWebView를 사용하여 연결된 쿠키를 모두 삭제할 수 있습니다.
for(NSHTTPCookie *cookie in [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]) {     if([[cookie domain] isEqualToString:someNSStringUrlDomain]) {         [[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie];     } } 
그것이 당신을 얻는 곳을 알려주십시오.


나는 거의 같은 문제가있었습니다.UIWebView에서 로컬 웹 페이지를 다시로드 할 때마다 이전 페이지가 표시되기 때문에 webview 캐시를 지우고 싶었습니다.그래서 단순히 요청의 cachePolicy 속성을 설정하여 해결책을 찾았습니다. NSMutableURLRequest를 사용하여 이 속성을 설정합니다. UIWebView를 다시 로드하면 모든 것이 잘 작동합니다.
NSURL *url = [NSURL fileURLWithPath:MyHTMLFilePath];  NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];  [request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];  [self.webView loadRequest:request]; 
도움이 되기를 바랍니다!

캐싱을 완전히 비활성화하지 마십시오. 앱 성능이 저하되고 불필요합니다. 중요한 것은 앱 시작 시 캐시를 명시적으로 구성하고 필요할 때 제거하는 것입니다.
따라서 application:DidFinishLaunchingWithOptions:에서 캐시 제한을 다음과 같이 구성합니다.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {       int cacheSizeMemory = 4*1024*1024; // 4MB     int cacheSizeDisk = 32*1024*1024; // 32MB     NSURLCache *sharedCache = [[[NSURLCache alloc] initWithMemoryCapacity:cacheSizeMemory diskCapacity:cacheSizeDisk diskPath:@"nsurlcache"] autorelease];     [NSURLCache setSharedURLCache:sharedCache];     // ... other launching code } 
적절하게 구성했으면 캐시를 제거해야 할 때(예: applicationDidReceiveMemoryWarning 또는 닫을 때 UIWebView ) 다음을 수행합니다.
[[NSURLCache sharedURLCache] removeAllCachedResponses]; 
메모리가 복구된 것을 볼 수 있습니다. 나는 이 문제에 대해 여기에서 블로그를 작성했습니다: http://twobitlabs.com/2012/01/ios-ipad-iphone-nsurlcache-uiwebview-memory-utilization/

다음을 수행하여 캐싱을 비활성화할 수 있습니다.
NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:0 diskCapacity:0 diskPath:nil]; [NSURLCache setSharedURLCache:sharedCache]; [sharedCache release];

좋은 웹페이지 즐겨찾기