以下代码在iOS 3.0到iOS 4.3模拟器下运行良好,但在iOS5上崩溃
-(void)viewWillAppear:(BOOL)animated {
[self.tableView reloadData];
[super viewWillAppear:animated];
}
-(void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[self.navigationController viewDidAppear:animate];
}
我在[self.navigationController viewDidAppear:animate]中获得了exc_bad_access,它使应用程序崩溃。
它在以前的版本中没有任何问题,工作正常。
此应用程序是在XCode4中开发的,部署目标为3.0。我的用户刚用iOS5升级iPhone时发现应用程序崩溃了。 我能够重现问题,但不知道如何解决它。
任何人都能解释一下吗?
答案 0 :(得分:0)
[self.navigationController viewDidAppear:animate];
是问题所在。在iOS 5中,它将一遍又一遍地递归调用此视图控制器的viewDidAppear方法,直到它崩溃为止。为什么需要在导航控制器上手动调用viewDidAppear?如果确实需要让你的代码正常工作,你可能想要回溯一下,如果你需要这样做,那么其他一些必须是错误的。
另一件事就是做好管家工作:在你的视图中,[super viewWillAppear:animated];
首先应该是那个方法。