部署到iPad时出现此错误。它不会出现在模拟器中。
我的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)。为什么我会收到这个奇怪的错误?任何帮助表示赞赏。
答案 0 :(得分:1)
该行
[url release];
是你麻烦的根源。您正在发布一个您不拥有的对象。您通过请求的-URL方法获取了网址,因为它不包含new
,create
或copy
您不是所有者。删除行[url release]
,然后重新阅读内存管理指南。