ViewDidAppear在iOS 5.0模拟器上崩溃

时间:2011-10-17 19:58:41

标签: ios5

以下代码在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时发现应用程序崩溃了。 我能够重现问题,但不知道如何解决它。

任何人都能解释一下吗?

1 个答案:

答案 0 :(得分:0)

[self.navigationController viewDidAppear:animate];是问题所在。在iOS 5中,它将一遍又一遍地递归调用此视图控制器的viewDidAppear方法,直到它崩溃为止。为什么需要在导航控制器上手动调用viewDidAppear?如果确实需要让你的代码正常工作,你可能想要回溯一下,如果你需要这样做,那么其他一些必须是错误的。

另一件事就是做好管家工作:在你的视图中,[super viewWillAppear:animated];首先应该是那个方法。