0

我在升级到 Xcode5 时遇到问题。在我开始更改项目中的任何内容之前,我想我会使用 IOS7 3.5 英寸模拟器构建和运行它。有两个主要问题,这是我无法弄清楚的主要问题。我已经确定了一行代码,直到现在它一直运行良好 - 现在每当它运行我的应用程序时,我都会将它EXC_BAD_ACCESS 追踪到一行代码,即我的 popToRoot - 基本上是在填写表格和保存它我想将视图重置为默认值,这是我迄今为止成功使用这行代码的原因。

代码如下所示:

[self.navigationController popToRootViewControllerAnimated:NO];

加上一些 NSLog'ing,它看起来像这样:

NSLog(@" self.navCon is %@", self.navigationController);
                NSArray *myControllers = self.navigationController.viewControllers;
                NSLog(@"myControllers Content is %@", myControllers);
                NSLog(@"myControllers Count is %i", myControllers.count);
                [self.navigationController popToRootViewControllerAnimated:NO];

我的注销看起来像这样:

2013-11-10 00:21:32.480 trainForTri copy[9552:a0b]  self.navCon is <UINavigationController: 0xb5bf580>
2013-11-10 00:21:32.481 trainForTri copy[9552:a0b] myControllers Content is (
    "<SGK_T4T_01SecondViewController: 0xbaeac00>",
    "<AddSessionSessTypePicker: 0xb5e51e0>",
    "<SGK_T4T_01SecondViewController: 0xbb5fa00>"
)

我注意到我的 viewController 数组中的第一个和第三个 viewController 是同一个视图,但是为什么它直到现在才在所有操作系统上工作?更重要的是关于如何解决这个问题的任何想法?

4

2 回答 2

2

你用过弧线吗? 检查您在 xcode 5 中的摘要设置。可以更改任何内容。 视图控制器的释放对象问题

于 2013-11-10T01:41:19.027 回答
0

请查看您是否遵循以下几点:

  1. 在调用之前popToRootViewControllerAnimated:确认 RootViewController 确实存在。如果它在某处死掉,调用该方法将导致崩溃。
  2. 检查你最后一个视图的– viewWillDisappear:– viewDidDisappear:方法,以确保你没有在那里做一些危险的事情。
  3. 检查dealloc视图及其控制器的方法,以确保您不会过度释放某些东西。
  4. 尝试使用 NSZombie 并找出过度释放的对象。
于 2013-11-10T00:47:37.823 回答