iPhone:尝试切换视图仅在第三个交换机上产生EXC_BAD_访问

iPhone:尝试切换视图仅在第三个交换机上产生EXC_BAD_访问,iphone,uiviewcontroller,mkmapview,Iphone,Uiviewcontroller,Mkmapview,我已经实现了一个应用程序,它显示了一个地图,上面有很多图钉。 如果按下一个管脚,则会出现第二个视图,显示管脚后面的数据。 一个按钮将带您返回地图 我的问题是,在第三次触按pin时,程序会崩溃,在此方法中会出现EXC\u BAD\u ACCESS: - (void) switchViews { if(self.details == nil){ Kundendetails *detailAnsicht = [[Kundendetails alloc] initWit

我已经实现了一个应用程序,它显示了一个地图,上面有很多图钉。 如果按下一个管脚,则会出现第二个视图,显示管脚后面的数据。 一个按钮将带您返回地图

我的问题是,在第三次触按pin时,程序会崩溃,在此方法中会出现
EXC\u BAD\u ACCESS

 - (void) switchViews {
     if(self.details == nil){
           Kundendetails *detailAnsicht = [[Kundendetails alloc] initWithNibName:@"ViewList" bundle:nil];
          detailAnsicht.rootViewController = self;
          self.details = detailAnsicht;
          detailAnsicht.map = self.map; 
     }
     if(self.details.view.superview == nil) {
          [map.view removeFromSuperview];
          [self.view addSubview:details.view];
          [details viewDidLoad];
     } else {
          [details.view removeFromSuperview];
          [details release];
          [self.view addSubview:map.view];
     }
}
如何隔离导致崩溃的代码行?为什么它总是在第三次触摸时崩溃


我希望您能帮助我。

将NSLog语句放在ifs的每个分支中。您几乎可以肯定地看到,这句话导致了问题:

  [details viewDidLoad];
这是因为在某个时候,您会执行以下操作:

  [details release];
有效地使细节无法访问。顺便说一句,您几乎不应该直接调用
viwewDidLoad