popToRootViewControllerAnimated 在 IOS 7 sim 上的 Xcode5 中使 App 崩溃
Posted
技术标签:
【中文标题】popToRootViewControllerAnimated 在 IOS 7 sim 上的 Xcode5 中使 App 崩溃【英文标题】:popToRootViewControllerAnimated crashes App in Xcode5 on IOS 7 sim 【发布时间】:2013-11-10 00:34:29 【问题描述】:我在升级到 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 是同一个视图,但是为什么它到现在为止都可以在所有操作系统上工作呢?更重要的是,有什么想法可以解决这个问题吗?
【问题讨论】:
【参考方案1】:你用过 arc 吗? 检查您在 xcode 5 中的摘要设置。可以更改任何内容。 视图控制器的释放对象问题
【讨论】:
【参考方案2】:请查看您是否遵循以下几点:
-
在调用
popToRootViewControllerAnimated:
之前确认RootViewController 确实存在。如果它在某处死掉,调用该方法将导致崩溃。
检查您上次查看的– viewWillDisappear:
和– viewDidDisappear:
方法,以确保您没有在那里做危险的事情。
检查视图及其控制器的dealloc
方法,以确保您不会过度释放某些内容。
尝试使用 NSZombie 找出过度释放的对象。
【讨论】:
以上是关于popToRootViewControllerAnimated 在 IOS 7 sim 上的 Xcode5 中使 App 崩溃的主要内容,如果未能解决你的问题,请参考以下文章