所以,我有一个使用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,并注释掉了我所有的发布/交易调用,它恢复了工作状态。我想调试器如何指出它们的位置很好。:)