Почему бы не выдать исключение, если [super init] возвращает nil?

Это считается типичным

- (id)init {
    self = [super init];
    if (self) {
        // <#initializations#>
    }
    return self;
}

, но не лучше ли было бы пойти с чем-то вроде этого, которое действительно отвечает соответствующим образом?

- (id)init {
    self = [super init];
    if (self) {
        // <#initializations#>
    } else {
       @throw [NSException exceptionWithName:NSInternalInconsistencyException reason:@"you think your constructor is executing, but it's not"] userInfo:nil]
    }
    return self;
}


Следствие к вопрос в том, «при каких условиях [super init] вернет nil и не следует ли вам обрабатывать это в методе init ? ] "

12
задан Dan Rosenstark 5 July 2011 в 18:29
поделиться