Obj-c initWithCoder似乎崩溃了NavigationController

时间:2011-08-30 22:04:08

标签: objective-c uitableview archive

有人知道为什么我添加...

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

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

    return self;

}

到我的RootViewController它不会使用didSelectRowAtIndexPath方法从表格单元格推送新视图。这就是它似乎挂起的线......

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

我没有收到任何错误消息,它似乎只是跳过它。除非我把initWithCoder拿出来并且工作正常。

任何见解都会得到满足。

克里斯

2 个答案:

答案 0 :(得分:1)

你没有调用超类的-initWithCoder:实现。

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

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

    return self;
}

答案 1 :(得分:0)

检查日志并查找引发的异常,导致代码过早终止。或者在NSException加注时设置中断。

顺便说一下,您需要在[super init]中调用initWithCoder