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

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

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

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

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

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

    return self;
}

Зачем?

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

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

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

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