puC_BAD_ACCES puchviewcontroller tableview

时间:2011-10-26 08:08:28

标签: ios exc-bad-access pushviewcontroller

我为ios5编译项目时遇到了问题。以下代码适用于ios4.3。在运行时,内核在此行上抛出EXC_BAD_ACCESS Mach异常:

[[self navigationController] pushViewController:choixQuotidienTableViewController animated:YES];

在我的tableview上的didSelectRowAtIndexPath中:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [tableView deselectRowAtIndexPath:indexPath animated:NO];

    // requête avec la langue choisie
    NSArray *codes = [arrayLangages valueForKey:@"code"];
    NSString *codeSelect = [codes objectAtIndex:indexPath.row];

    //NSLog(@"selected code : %@", codeSelect);

    // init table view Choix Quotidien
        ChoixQuotidienTableViewController *choixQuotidienTableViewController = [[ChoixQuotidienTableViewController alloc] initWithStyle:UITableViewStylePlain andCode:codeSelect];

    //choixQuotidienTableViewController.fromLangue = resultsArrayKioskLangue;
    if([self navigationController] == nil)
    {
        NSLog(@"navigationController IS NIL!!!");
    }
    else
    {
        NSLog(@"Nav controller IS OK!");
        if(!choixQuotidienTableViewController)
        {
            NSLog(@"choixcontroller IS NIL!!!");
        }
        else
        {
            NSLog(@"choix controller IS OK!");
            [[self navigationController] pushViewController:choixQuotidienTableViewController animated:YES];
        }
    }
    choixQuotidienTableViewController = nil;
}
你能帮帮我吗? ios5有什么变化吗?

谢谢!

更新:好的新东西......:我用过profil>植物大战僵尸。这个工具在[ChoixQuotidienTableViewController tableView:cellForRowAtIndexPath:]中显示错误......疯狂!

我使用了一个自定义单元格...当我纠正它时它起作用......

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

没有更多代码就很难说。

此代码不会生成BAD_ACCESS。但请注意,如果您不释放它,choixQuotidienTableViewController将会泄漏(除非您使用ARC)。

确保[self navigationController]返回尚未释放的有效对象。

调试器堆栈跟踪也可能有所帮助。

答案 1 :(得分:0)

你试过吗?     [choixQuotidienTableViewController release]; 代替     choixQuotidienTableViewController = nil;