NSZombie在didSelectRowAtIndexPath方法

问题描述:

我有一个有趣的问题,我似乎无法找出为什么它正在发生,可能是小东西,我俯瞰。NSZombie在didSelectRowAtIndexPath方法

我有一个UITableView和我didselectrowatindex路径我浏览到一个新的观点,我然后导航到下一个视图和流行两种观点,回到第一,然后应用程序崩溃与EXC_BAD_ACCESS

所以我使用的仪器和NSZombie,发现didSelectRowAtIndexPath方法一个malloc,但我不知道为什么

这里是我的代码:

if([workflowswithdirectories count] == 0) 
{ 
    WorkflowViewController *aWorkFlow = [[WorkflowViewController alloc] init]; 
    MenuObject *obj = [workflownames objectAtIndex:[indexPath row]]; 
    aWorkFlow.heading = obj.name; 
    aWorkFlow.workId = obj.workflowid; 
    aWorkFlow.siteId = obj.siteid; 
    aWorkFlow.item = obj; 
    [self.navigationController pushViewController:aWorkFlow animated:YES]; 

} 
else if([workflownames count] == 0) 
{ 
    WorkflowListViewController *work = [[WorkflowListViewController alloc] init]; 
    work.siteId = self.siteId; 
    MenuObject *obj = [workflowswithdirectories objectAtIndex:[indexPath row]]; 
    work.menu = obj.next; 
    work.heading = obj.name; 
    [self.navigationController pushViewController:work animated:YES]; 
} 
else 
{ 
    if([indexPath section] == 0) 
    { 
     WorkflowListViewController *work = [[WorkflowListViewController alloc] init]; 
     work.siteId = self.siteId; 
     MenuObject *obj = [workflowswithdirectories objectAtIndex:[indexPath row]]; 
     work.menu = obj.next; 
     work.heading = obj.name; 
     [self.navigationController pushViewController:work animated:YES]; 
    } 
    else 
    { 
     WorkflowViewController *aWorkFlow = [[WorkflowViewController alloc] init]; 
     MenuObject *obj = [workflownames objectAtIndex:[indexPath row]]; 
     aWorkFlow.heading = obj.name; 
     aWorkFlow.workId = obj.workflowid; 
     aWorkFlow.siteId = obj.siteid; 
     aWorkFlow.item = obj; 
     [self.navigationController pushViewController:aWorkFlow animated:YES]; //Malloc is on this line 
    } 
} 
[tableView deselectRowAtIndexPath:indexPath animated:YES]; 

编辑:

事情我忘了提的是,在某些情况下,我推这个相同的类到navigationcontroller的一个又一个,但去的时候到WorkflowViewController,然后到下一个视图控制器,然后再两倍抛出异常

它只
+0

如果有什么你做了新的ViewController强大的属性,而不是一个方法伊娃。这会给你一个保证,它不会太早发布。 – CodaFi 2012-03-26 20:59:22

+0

当您尝试访问已释放的对象时,会发生EXC_BAD_ACCESS错误。您应该在用于回弹到原始视图的方法上发布代码片段。你提到你至少推动了另一种观点。也许你正在释放那里的对象? – Justin 2012-03-26 21:00:33

+0

你能告诉我们didSelectRowAtIndexPath方法吗?只需粘贴你的整个回溯。要从终端了解更多关于错误的信息,请使用malloc_history。 – 2012-03-26 21:01:57

为了记忆和效率的缘故,让所有的UIViewControllers强大的属性(支持iVar)来保证它们在任何有用的地方保持足够长的时间。