В Objective-C, почему я должен проверить, если self = [super init] не ноль?

У меня есть общий вопрос о написании методов инициализации в Objective-C.

Я вижу везде (код Apple, книги, открытый исходный код и т. Д.), Что метод init должен проверить, не равен ли self = [super init] ноль, прежде чем продолжить инициализацию.

Шаблон Apple по умолчанию для метода init:

- (id) init
{
    self = [super init];

    if (self != nil)
    {
        // your code here
    }

    return self;
}

Почему?

Я имею в виду, когда init когда-нибудь вернет ноль? Если я вызвал init в NSObject и получил nil обратно, то что-то должно быть действительно испорчено, верно? И в этом случае вы могли бы даже не написать программу ...

Действительно ли так часто, что метод init класса может возвращать ноль? Если да, то в каком случае и почему?

Ответы на вопрос(9)

Ваш ответ на вопрос