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

时间:2012-06-07 01:31:48

标签: iphone ios exc-bad-access

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

这是完美的工作(正确推动和弹出),直到我为其中一个游戏模式完成时添加了统计菜单。

现在,从stats菜单切换回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];

Error in question

Link to Code

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

看起来苹果现在正试图强制执行A​​RC。我刚刚下载了10.7 SDK的更新,它使我的程序(还包含performSegueWithIdentifier :)超级错误并在我之前解决的多个问题上抛出EXC_BAD_ACCESS(SDK更新前)。我打开了ARC,并将我的所有释放/ dealloc调用注释掉,恢复了工作状态。很好,调试器如何指出你在哪里我想。 :)