在这段代码中,我从.xib加载一个View Controller(和关联的View):

-(id)initWithCoder:(NSCoder *)coder
    {
    // add custom initialisation code here
    [super initWithCoder:coder];
    return self;
    }


这可以成功工作,但是我不太了解[super initWithCoder:coder]行正在完成什么。初始化View后,是否初始化View Controller?

解释时请尽可能明确。谢谢。

最佳答案

您的类是UIViewController的子类。该调用告诉您的超类(UIViewController)执行它需要完成的步骤,以便您可以执行初始化步骤。这将设置UIViewController提供的任何属性,或者注册UIViewController需要完成其工作的通知。

建议您几乎每次在您从超类中重写一个方法以调用超类的方法以及需要执行的步骤时,都建议这样做。

编辑:同样,如果您不需要在超类提供的方法中执行任何操作,则可以将其省略,而将使用超类的方法。在这种情况下,我不会提供initWithCoder:方法,除非除了显示的内容之外还需要执行一些代码。

10-07 19:14
查看更多