例外EXC_BAD_ACCESS

时间:2011-04-25 09:45:45

标签: objective-c xcode

我有一个包含四个按钮的视图控制器。点击每个按钮将带您进入包含Web视图的新视图控制器。除非单击按钮,否则一切正常..如果我要导航,则会将您带到Web视图返回应用程序退出...在调试模式下我有异常EXC_BAD_ACCESS ...下面是代码......

-(IBAction)Button1
{

WebViewFaceBook *newEnterNameController4 = [[WebViewFaceBookalloc]initWithNibName:@"WebViewFaceBook" bundle:[NSBundle mainBundle]];

    [[self navigationController] pushViewController:newEnterNameController4 animated:YES];

[newEnterNameController4 release];

}


- (void)viewDidLoad {
    [super viewDidLoad];

    //[UIApplication sharedApplication].networkActivityIndicatorVisible=YES;
    urlAddress2 = @"http://www.facebook.com/livingwaterscf";

    url2 = [NSURL URLWithString:urlAddress2];

    requestObj2 = [NSURLRequest requestWithURL:url2];

    [webViewFaceBook loadRequest:requestObj2];
}

3 个答案:

答案 0 :(得分:4)

您是否在dealloc中发布了webView?您是否使用webview的任何委托方法?

结帐NSZombieEnabled查看您的活动可执行文件,以查看有关错误访问的更多信息。

如果没有ivars / properties声明,这些作业将无效:

urlAddress2 = @"http://www.facebook.com/livingwaterscf";

url2 = [NSURL URLWithString:urlAddress2];

requestObj2 = [NSURLRequest requestWithURL:url2];

您能否在头文件中向我们展示这些内容的定义?

修改

将urlAddress2,url2和requestObj2的声明更改为保留的属性并使用self.urlAddress2 = xxx进行设置,然后您可以在dealloc中释放它们。类方法以及@"http://www.facebook.com/livingwaterscf"返回自动释放的实例。如果你想拥有它们,你必须保留它们,然后才能释放它们。

如果您不想拥有它们,在这种情况下,我认为您不需要其他任何地方,然后开始加载webview的内容,只是不要在dealloc中释放它们!

答案 1 :(得分:1)

您尝试访问已解除分配的内容。

启用NSZombie以查找位置。

答案 2 :(得分:0)

您可能会在url2控制器的dealloc方法中发布WebViewFaceBook

requestObj2, url2, urlAddress2已经自动释放。你不能在dealloc中释放它们