Warum sollte ich in Objective-C prüfen, ob self = [super init] nicht gleich nil ist?

Ich habe eine allgemeine Frage zum Schreiben von init-Methoden in Objective-C.

Ich sehe überall (Apples Code, Bücher, Open Source-Code usw.), dass eine init-Methode prüfen sollte, ob self = [super init] nicht gleich nil ist, bevor Sie mit der Initialisierung fortfahren.

Die Standard-Apple-Vorlage für eine Init-Methode lautet:

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

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

    return self;
}

Warum?

Ich meine, wann wird init jemals null zurückgeben? Wenn ich bei NSObject init angerufen habe und nichts zurückbekommen habe, dann muss etwas wirklich vermasselt werden, oder? Und in diesem Fall könnten Sie genauso gut nicht einmal ein Programm schreiben ...

Ist es wirklich so üblich, dass die init-Methode einer Klasse nil zurückgibt? Wenn ja, in welchem ​​Fall und warum?

Antworten auf die Frage(9)

Ihre Antwort auf die Frage