Переопределение init в подклассе

В Objective-C необходимо ли переопределить все унаследованные конструкторы подкласса, чтобы добавить настраиваемую логику инициализации?

Например, будет ли следующее правильно для подкласса UIView с настраиваемой логикой инициализации?

@implementation CustomUIView

- (id)init {
    self = [super init];
    if (self) {
        [self initHelper];
    }
    return self;
}

- (id)initWithFrame:(CGRect)theFrame {
    self = [super initWithFrame:theFrame];
    if (self) {
        [self initHelper];
    }
    return self;
}

- (id)initWithCoder:(NSCoder *)decoder {
    self = [super initWithCoder:decoder];
    if (self) {
        [self initHelper];
    }
    return self;
}

- (void) initHelper {
    // Custom initialization
}

@end
38
задан hpique 5 December 2010 в 15:53
поделиться