2010-07-27 38 views
0

我在部署到iPad時出現此錯誤。它在模擬器中不會發生。Ipad錯誤:'Program received signal EXC_BAD_ACCESS'

我的iPad應用程序有三個UIWebViews。這個應用程序的大部分完全是作爲一個Web應用程序編寫的,並且使用CSS使其看起來更加本地化。根據請求變量「iPadTarget」的值,在各種Web視圖中單擊的鏈接將在特定的一箇中打開。

- (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,並且因爲它不包含newcreatecopy您不是所有者。刪除行[url release],並重新閱讀內存管理指導原則。