В 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 может вернуть ноль? Если да, то в каком случае и почему?