Ipad错误:'程序收到信号EXC_BAD_ACCESS'

时间:2010-07-27 02:23:54

标签: objective-c ipad uiwebview

部署到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)。为什么我会收到这个奇怪的错误?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

该行

[url release];

是你麻烦的根源。您正在发布一个您不拥有的对象。您通过请求的-URL方法获取了网址,因为它不包含newcreatecopy您不是所有者。删除行[url release],然后重新阅读内存管理指南。