切换视图控制器时EXEC_BAD_ACCESS(代码=1 地址=0x90000008)



所以,我有一个使用tableViewController来填充不同游戏类型的列表的应用程序。选择游戏时,它会按该名称执行 segue。

这运行良好(正确推送和弹出),直到我添加了一个统计菜单,当其中一个游戏模式结束时。

现在,我有时会在从统计菜单切换回 tableViewController 时收到EXEC_BAD_ACCESS错误。所以:

TVC ---> 游戏--->统计

然后

TVC--->统计数据

从TVC切换到游戏的代码:

NSString* a = (NSString*)[games objectAtIndex:indexPath.row];
a = [a stringByReplacingOccurrencesOfString:@" " withString:@""];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
[self performSegueWithIdentifier:a sender:self];

从游戏切换到统计菜单的代码:

[self performSegueWithIdentifier:@"Stats" sender:self];

从统计菜单切换到 TVC 的代码(问题出现的地方):

NSArray* controllers = self.navigationController.viewControllers;
int a = [controllers count] - 1;
[self.navigationController popToViewController:[[self.navigationController viewControllers] objectAtIndex:a-2] animated:YES];

有问题的错误

链接到代码

尝试分析代码以查看是否存在任何内存泄漏。这可能是应用程序崩溃的原因。

看起来苹果现在正试图强制执行ARC。我刚刚下载了 10.7 SDK 的更新,它制作了我的程序(其中还包含一个 performSegueWithIdentifier:)超级越野车,EXC_BAD_ACCESS我之前解决的多个问题(SDK 更新前)。我打开了 ARC,并注释掉了我所有的发布/交易调用,它恢复了工作状态。我想调试器如何指出它们的位置很好。:)

最新更新