2011-04-15 95 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

相關問題