Iphone 内存访问错误?

Iphone 内存访问错误?,iphone,memory,exc-bad-access,Iphone,Memory,Exc Bad Access,这句话怎么能让我接触不好呢 myWebView = [[NewsWebViewController alloc] initWithNibName:@"NewsWebViewController" bundle:nil]; [[self.view.superview superview] addSubview:myWebView.view]; if(myWebView!=nil) { [myWebView release]; myWebView = nil; } 我用仪器检查

这句话怎么能让我接触不好呢

myWebView = [[NewsWebViewController alloc] initWithNibName:@"NewsWebViewController" bundle:nil];
[[self.view.superview superview] addSubview:myWebView.view];

 if(myWebView!=nil) {
    [myWebView release];
    myWebView = nil;
}
我用仪器检查过,每次都会崩溃。myWebView是头文件中的ivar

有什么想法吗?非常感谢


Jules

发布后,您将mywebview设置为nil,这样当对象不再存在时,它会崩溃。按以下顺序操作:

if(myWebView!=nil) {

  myWebView = nil;
  [myWebView release];

}

在将myWebView的视图添加到子视图之前,应该检查它是否为零。发布myWebView后,您不需要将其设置为nil。

好,这是实际问题。当我删除webview时,它会被释放,但我没有将其委托设置为零。因此webViewDidFinishLoading等试图访问它,但给了我错误的访问权限


感谢大家的参与。

崩溃日志显示了什么?这是额外的吗['你的第一句话中没有分号是打字错误还是代码中有错误?@Greg这是一个打字错误,@Deepak从崩溃中获取信息的最佳方式是什么。我在控制台中没有得到任何信息,只是程序接收到信号:自动释放池中的错误访问。两件事:1当你说ivar时,你是否也将其声明为属性?2什么pens如果您在使用的方法范围内执行所有操作?应用程序运行正常吗?要获取详细的崩溃信息,您应该在调试模式下编译并运行程序。如果发生崩溃,它会告诉您程序崩溃的确切代码行,以及导致崩溃的事件序列。始终将NSZombieEnabled设置为在调试时是,快速谷歌搜索应该告诉您如何执行此操作。将其设置为“是”将提供有关导致EXC_BAD_访问的对象的信息。EXC_BAD_访问发生在您尝试访问已从内存中释放的对象时。您可以在释放对象后将其设置为“零”。如果您这样做,则会泄漏引用y、 这是给我还是@Robert jOk?ie我在泄漏还是示例在泄漏?@Jules-示例在泄漏。如果在调用release之前将myWebView设置为nil,则会丢失引用,并且无法释放它。Objective-C允许您向nil对象发送消息,这就是为什么此代码会编译/运行的原因。这只是一种习惯将其设置为nil,没有任何害处。在添加之前,我将尝试检查myWebView。我尝试了检查,但不幸的是没有任何效果,但我可能已经猜到,因为它确实显示了WebView,我怀疑此代码之外的问题,这里的崩溃是一个副作用。如果不释放myWebView,它会崩溃吗?崩溃日志是什么?