为obj-c、super-nob中的子类指定初始化程序



如果这是一个noob问题,很抱歉,但如果我为基类指定的初始值设定项看起来像

- (id)initWithName:(NSString *)name {
   if (self = [super init]) {
      _name = [name retain];
   }
   return self;
}

现在,如果我有一个从这个类继承的子类,并且想调用该初始值设定项,我会这样做吗:

- (id)initWithSomethingElse:(NSString *)somethingElse name:(NSString *)name {
   if (self = [super initWithName:name]) {
        _somethingElse = [somethingElse retain];
   }
   return self;
}

是的,没错。事实上,您可以调用任何一个超类的initializers。

正确,这就是在objc中初始化的方式。

最新更新