我有一个包含四个按钮的视图控制器。点击每个按钮将带您进入包含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];
}
答案 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中释放它们