【问题标题】:ViewDidAppear crashes on iOS 5.0 simulatorViewDidAppear 在 iOS 5.0 模拟器上崩溃
【发布时间】:2011-12-09 13:49:39
【问题描述】:

以下代码在 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。我的用户在将 iPhone 升级到 iOS5 时发现应用程序崩溃了。 我能够重现该问题,但不知道如何解决。

有人能解释一下吗?

【问题讨论】:

标签: ios5


【解决方案1】:

[self.navigationController viewDidAppear:animate]; 是这里的问题。在 iOS 5 中,它会一遍又一遍地递归调用视图控制器的 viewDidAppear 方法,直到它崩溃。为什么您需要在导航控制器上手动调用 viewDidAppear?如果确实有必要让您的代码正常工作,您可能需要稍微回溯一下,因为如果您需要这样做,肯定是其他地方出错了。

还有一点就是好管家:在您看来WillAppear 中,[super viewWillAppear:animated]; 应该排在第一位。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-27
    • 2013-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-28
    相关资源
    最近更新 更多