iPhone:尝试切换视图仅在第三台交换机上生成EXC_BAD_ACCESS

时间:2010-02-15 14:18:28

标签: iphone uiviewcontroller mkmapview

我已经实现了一个应用程序,它显示了一个包含大量针脚的地图。 如果您按下一个引脚,您将进入第二个视图,显示引脚后面的数据。 按钮会将您带回地图。

我的问题是,通过第三次触针,程序在此方法中以EXC_BAD_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];
     }
}

如何隔离哪行代码导致崩溃?为什么它只会在第三次碰撞时崩溃?

我希望你能帮助我。

1 个答案:

答案 0 :(得分:1)

将NSLog语句放在ifs的每个分支中。您几乎肯定会看到此声明导致问题:

  [details viewDidLoad];

这是因为在某些时候你执行了这个:

  [details release];

有效地使细节无法访问。顺便说一下,你也应该几乎不要直接打电话给viwewDidLoad