我有一个UITableViewController作为我的navigatorController的rootViewController。 当我按下一个表格单元格我做到以下几点:试图了解NavigationController在其堆栈上保留ViewControllers的计数
- (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添加保留计数,并从它弹出时释放它?
另外我相信,如果我推送到navcontroller后不包括发布,我产生泄漏。
任何想法这里发生了什么?
这看起来像你正在解决某处的释放实例。使用NSZombieEnabled集运行您的应用程序,以查看您遇到问题的实例。 – Vladimir 2010-04-29 11:01:20
感谢您的提示。不知道NSZombieEnabled它帮助你说找到释放的实例。 对于像我这样不知道NSZombieEnabled的人来说,这里是如何在xcode中启用它: 1.双击Xcode项目的Executables组中的可执行文件。 2.单击参数选项卡。 3.在“要在环境中设置变量:”部分中,创建一个名为“NSZombieEnabled”的变量并将其值设置为“YES”。 确保删除此分发! – sharkan 2010-05-01 18:16:26