我有一个UITableViewController作为我的navigatorController的rootViewController。 当我按下表格单元格时,我会执行以下操作:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
MessageHistory *msg = (MessageHistory *)[[self fetchedResultsController]objectAtIndexPath:indexPath];
ConversationViewController *chatController = [[ConversationViewController alloc]initWithNibName:@"ConversationView" bundle:nil andUser:msg.user];
[self.navigationController pushViewController:chatController animated:YES];
[chatController release];
但是当我从chatController返回时(使用导航栏上的后退按钮)我得到“EXC_BAD_ACCESS”
评论
//[chatController release];
解决了这个问题。怎么样?我想当推送到navigationController时会添加一个保留计数,当它弹出时会释放它吗? 另外我相信如果我在推送到导航控制器之后没有包括释放,那我就会产生泄漏 知道这里发生了什么吗?
答案 0 :(得分:0)
我有几次遇到这个问题,并且几乎疯了,试图找到错误。
在我的情况下,我在第二个视图中有一个UIWebView,UIViewController设置为委托。在我的UIViewController dealloc方法中,我忘了把webView.delegate = nil。
当第二个UIViewController被弹出并因此被释放时,UIWebView正在向它的委托发送消息(第二个UIViewController,它不再存在)。
不知道这是否适用于你,但我花了几天时间寻找这个错误,所以也许它有任何帮助。