2011-08-30 33 views
0

沒有人知道爲什麼當我加入...的OBJ-C的initWithCoder似乎崩潰NavigationController

-(id) initWithCoder: (NSCoder *) decoder { 

OutputDataMutableArray = [[decoder decodeObjectForKey:@"RootViewControllerPostArray"] retain]; 

return self; 

}

我RootViewController的使用didSelectRowAtIndexPath方法也不會從一個表格單元格推一個新的觀點方法。這是它似乎掛起的線...

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

我沒有得到任何錯誤消息,它只是似乎跳過它。除非我把initWithCoder拿出來,它工作正常。

任何洞察力將appriciated。

Chris

回答

1

你不調用父類的實現-initWithCoder:

- (id)initWithCoder:(NSCoder *)aDecoder 
{ 
    self = [super initWithCoder:aDecoder]; 

    if(self) 
    { 
     OutputDataMutableArray = [[decoder decodeObjectForKey:@"RootViewControllerPostArray"] retain]; 
    } 

    return self; 
} 
+0

假設超級採用'NSCoding' ...... – justin

+0

「我的RootViewController的」似乎意味着該類從UIViewController的繼承,不是嗎? –

+0

在這種情況下安全的假設:) – justin

0

檢查日誌並查找拋出的異常,導致代碼過早終止。或者在NSException提高時設置一箇中斷。

順便說一句,你需要調用[超級初始化]中的initWithCoder:

相關問題