2

在此代码中,我从 .xib 加载视图控制器(和关联的视图):

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

这成功地工作,但我并不真正理解 [super initWithCoder:coder] 行正在完成什么。是在我的视图被初始化后初始化我的视图控制器吗?

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

4

1 回答 1

3

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

除了您需要采取的步骤之外,几乎每次您覆盖超类中的方法以调用超类的方法时,都建议您这样做。

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

于 2010-03-12T19:24:39.663 回答