2011-04-15 88 views
0

我找不到问题!任何帮助,将不胜感激: 从UITableView我推新视图包含一个视图与UIwebView访问互联网。当后退按钮被点击时,我得到下一个错误:malloc:*错误的对象0x3d438:被释放的指针未分配。 但是,当我评论最后一行(当dvController被释放时),所有工作都很好!当pushViewController:被释放的指针未被分配

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    [self setCellIdxPathSelected:indexPath]; 

    NSString *selectedID = [[theList objectAtIndex:indexPath.row] theWebID]; 

    ExternalWebView *dvController = [[ExternalWebView alloc] initWithNibName:@"ExternalWebView" bundle:nil]; 

    dvController.hidesBottomBarWhenPushed= YES; 
    dvController.theWebID= selectedID; 

    NSLog(@"El ID: %@", selectedID); 

    [self.navigationController pushViewController:dvController animated:YES]; 

    [dvController release]; // ERROR !!! 
} 

回答

0

尝试用autorelease创建dvController

ExternalWebView *dvController = [[[ExternalWebView alloc] 
     initWithNibName:@"ExternalWebView" bundle:nil] autorelease]; 

,然后取下[dvController release]声明。

如果您使用泄漏工具运行仪器并确认您实际上没有泄漏dvController,那么确认您没有泄漏。

我的预感是你的控制器被另一个对象释放出来,你的对象不知何故成为子视图。在另一种情况下,我已经看到过这种行为。

当然,如果上述改变也会导致崩溃,那么存在更深层的问题,我想我们需要更多关于ExternalWebView的信息。

+0

感谢您的回答,它现在不会崩溃! – cubaniche 2011-04-15 22:40:53

+0

很高兴听到它!您是否检查了泄漏工具以查看对象是否仍在泄漏? – 2011-04-16 12:55:54

相关问题