4

我发现当我初始化一个新的子类时,我得到了一个返回父类的对象。

家长:

- (id)init
{  
    self = [[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil] instantiateViewControllerWithIdentifier:@"EditController"];        
    return self;
}

孩子:

- (id)init
{
    NSLog(@"New child");
    self = [super init];
    return self;
}

如果我分配并初始化一个孩子,它会显示New child但会给我一个父类的对象。调用仅在子级中声明的方法会导致崩溃。

有人可以解释这里的初始化过程是如何工作的,以及如何创建一个子对象吗?

4

1 回答 1

0

我敢打赌,崩溃是由父级init返回一个自动释放的 EditController 实例引起的。无论哪种方式,您为什么不直接在情节提要中将班级类型设置为孩子的班级类型?

于 2012-04-22T20:59:51.863 回答