iPhone:尝试切换视图仅在第三个交换机上产生EXC_BAD_访问
我已经实现了一个应用程序,它显示了一个地图,上面有很多图钉。 如果按下一个管脚,则会出现第二个视图,显示管脚后面的数据。 一个按钮将带您返回地图 我的问题是,在第三次触按pin时,程序会崩溃,在此方法中会出现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
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