2012-03-28 4 views
0

WebViewController을 사용하는 코드를 분석했는데 메모리 누수가 발생했습니다.Xcode 메모리 누수가 발생 했습니까?

이 간단한 코드가 실제로 이러한 문제를 일으킬 수 있습니까?

- (IBAction) google: (id) sender { 
    NSURL *url = [NSURL URLWithString:@"http://www.google.com/"]; 
    WebViewController *webViewController = [[WebViewController alloc] initWithURL:url andTitle:@"Google"]; 
    [self presentModalViewController:webViewController animated:YES]; 
    //[webViewController release]; 
} 

릴리스의 주석을 제거하지 않으면 누출은 없지만 Google을 통해 몇 번의 클릭만으로 프로그램이 중단됩니다. 그래서 적어도 프로그램이 작동하기 때문에 누출을 프로그램에 남겨 두어야하는지 잘 모르겠습니다. 누구나 통찰력을 제공 할 수 있습니까? 따라서 webview에서 엄한 페이지를 탐색하고 완료 버튼을 클릭하면 1 초 동안 내 메인보기로 돌아가 충돌합니다. 당신이 그것을 사용하여 수행 한 후 http://pastebin.com/A8ELm18R

+0

당신이 그것을 추락 때 엑스 코드에서 말하는 게시 할 수 있습니까? 당신이 가지고있는 것은별로 도움이되지 않습니다. – rosslebeau

답변

1

(WebThread 중)

충돌 출력 당신은, 나중에 웹보기를 해제해야합니다. 재산으로 추적하고 모달을 해제하면 해제 할 수 있습니다.

당신은 또한 같은 오토 릴리즈 사용할 수 있습니다

- (IBAction) google: (id) sender { 
    NSURL *url = [NSURL URLWithString:@"http://www.google.com/"]; 
    WebViewController *webViewController = [[[WebViewController alloc] initWithURL:url andTitle:@"Google"] autorelease]; 
    [self presentModalViewController:webViewController animated:YES]; 
} 
+1

또는 쉬운 (그리고 그렇게 효율적이지는 않은) 방법을 이용하십시오 .. autorelease! : P – Neo

+1

사실, 이것도 잘 작동합니다. 나는 단지 내 기억을 관리하는 것에 대해 항문 일 뿐이야 :) – rosslebeau

+0

예, 나는 모든 것을 거의 다 시험해 보았다. 당신은 내게 어떻게 구현되는지를 말해 줄 수 있습니까 – user1296841

관련 문제