2010-07-27 2 views
0

iPad에 배포 할 때이 오류가 발생합니다. 시뮬레이터에서는 발생하지 않습니다.Ipad 오류 : '프로그램 수신 신호 EXC_BAD_ACCESS'

내 ipad 앱에는 3 개의 UIWebView가 있습니다. 이 응용 프로그램의 대부분은 웹 응용 프로그램으로 완전하게 작성되었으며 CSS를 사용하여 더 자연스럽게 보이게합니다. 다양한 웹보기에서 클릭되는 링크는 요청 변수 "iPadTarget"의 값에 따라 특정 웹보기에서 열립니다.

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { 
    NSURL *url = [request URL]; 

//Extract the value from request variable 'iPadTarget' in url string. 
NSString *test = [url query]; 
int index = [test rangeOfString:@"iPadTarget="].location; 
int target = index + 11; 
NSLog(@"%i", target); 
char c = [test characterAtIndex:target]; 
NSLog(@"%c",c); 

if (navigationType == UIWebViewNavigationTypeLinkClicked) { 
    if (c == '1') { 
     [viewOne loadRequest:request]; 
     return NO; 
    } else if (c == '2') { 
    [viewTwo loadRequest:request]; 
    return NO; 
    } else if (c == '3') { 
    [viewThree loadRequest:request]; 
    return NO; 
    } 
} 
    return YES; 
    [url release]; 
    } 

위 코드는 변수 "iPadTarget"을 찾고 그 값 (1 - 3)을 추출합니다. 이 이상한 오류가 나는 이유는 무엇입니까? 어떤 도움을 주셔서 감사합니다.

답변

1

라인

[url release]; 

은 문제의 근원이다. 당신이 소유하지 않은 물건을 풀어주고 있습니다. 귀하는 요청의 -URL 방법을 통해 URL을 획득했으며, new, create 또는 copy을 포함하지 않으므로 소유자가 아닙니다. 줄 [url release]을 제거하고 메모리 관리 지침을 다시 읽으십시오.

관련 문제