首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >didSelectRowAtIndexPath中的NSZombie

didSelectRowAtIndexPath中的NSZombie
EN

Stack Overflow用户
提问于 2012-03-27 04:54:10
回答 1查看 108关注 0票数 0

我有一个有趣的问题,我似乎找不到为什么会发生这种情况,可能是我忽略了的一些小问题。

我有一个UITableView,在我的didselectrowatindex路径中,我导航到一个新视图,然后导航到下一个视图,弹出两个视图以返回到第一个视图,然后应用程序崩溃并显示EXC_BAD_ACCESS

所以我使用了instruments和NSZombie,在didselectrowatindexpath中找到了一个malloc,但我不知道为什么

下面是我的代码:

代码语言:javascript
复制
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];

编辑:

我忘记提到的一件事是,在某些情况下,我将同一个类的另一个推送到导航控制器上,但只有在转到WorkflowViewController,然后转到下一个视图控制器,然后再返回两次时,才会抛出异常。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-27 05:02:37

为了内存和效率的原因,让所有的UIViewControllers属性变得强大(使用一个后备的iVar),以确保它们能够保持足够长的时间,以获得任何有用的东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9879694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档