2010-02-02 5 views

답변

3

아마도 캐시를 지워도 도움이 될까요? NSURLCache 클래스를 참조하십시오.

+0

감사 디에 데 리크 – RAGOpoR

+0

cound 캐시를 지우는 몇 가지 예가 있습니까? – RAGOpoR

+1

[[NSURLCache sharedURLCache] removeAllCachedResponses]; – diederikh

1

출시 한 것만으로 출시 될 수 있다는 의미는 아닙니다. 다른 용도로 사용되었을 수도 있습니다.

해제 후 보유 개수는 얼마입니까?

[myWebView release]; 
NSLog(@"%i", [myWebView retainCount]); 

이 숫자가 0이 아니면, 다른 사람은 잘 유지되고 있으며 그들도 그것을 놓을 때까지 해제 할 수없는 (또는은 (는) 미래의 어떤 시점에서 사라질 수 있도록 오토 릴리즈 가능하도록 설정).

또 다른 가능성은 사용 된 메모리가 웹보기가 생성 될 때로드되는 일종의 공유 라이브러리에 있다는 것입니다. 아마도 언로드하는 방법을 제어 할 수 없을 것입니다. 당신을 유지하는보기에 자신을 추가 -

PS 나는 당신이 또한 [myWebView removeFromSuperview];을 한 적이 있으리라 믿고있어.

+0

귀하의 제안에 감사드립니다 deanWombourne – RAGOpoR

+1

@bbum http://www.friday.com/bbum/2011/12/18/retaincount-is-useless/ "Retaincount is useless" –

+0

@bbum 동의 - 그냥 내가 그 질문에 대답했을 때 그걸 충분히 알았 으면 좋겠다. – deanWombourne

0

UIWebView를 해제 할 때 최대한 많은 메모리를 정리하는 데 도움이되는 트릭이 있습니다 (일부는 original post을 확인하십시오). 불행히도, 그들은 사용 된 메모리의 완전한 릴리스에 도달하지 못합니다. 일반적으로 나에게 더 잘 작동하는 것은 WebView를 릴리스하기 전에 WebView의 HTML 문서를 비우는 것입니다.

// Empty the HTML document. This hack free some additional memory 
[webview stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML='';"]; 

하지만 웹 구성 요소 :(에서 사용하는 메모리의 전체 버전에 도달하지

또한, 너무의 Urlcache을 취소하는 당신의 희망, 당신은이 호출을 취소하려고 할 수있는 경우 :

당신이 쇼이합니다 (있는 UIWebView 내부에서 수행하는 사람 포함)하는 URLRequest의 응용 프로그램에서 사용하는 sharedURLCache을 취소합니다
// remove all cached responses 
[[NSURLCache sharedURLCache] removeAllCachedResponses]; 

. 귀하의 제안에 대한

관련 문제