我已经实现了一个应用程序,它显示了一个包含大量针脚的地图。 如果您按下一个引脚,您将进入第二个视图,显示引脚后面的数据。 按钮会将您带回地图。
我的问题是,通过第三次触针,程序在此方法中以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];
}
}
如何隔离哪行代码导致崩溃?为什么它只会在第三次碰撞时崩溃?
我希望你能帮助我。
答案 0 :(得分:1)
将NSLog语句放在ifs的每个分支中。您几乎肯定会看到此声明导致问题:
[details viewDidLoad];
这是因为在某些时候你执行了这个:
[details release];
有效地使细节无法访问。顺便说一下,你也应该几乎不要直接打电话给viwewDidLoad
。