0

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

在我为其中一种游戏模式完成添加统计菜单之前,这一切正常(正确推送和弹出)。

现在,当我从 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];

从 Stats Menu 切换到 TVC 的代码(出现问题的地方):

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

有问题的错误

链接到代码

4

2 回答 2

1

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

于 2012-06-07T07:14:12.957 回答
1

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

于 2012-07-10T21:32:29.563 回答