W Objective-C dlaczego mam sprawdzić, czy self = [super init] nie jest zerowe?
Mam ogólne pytanie dotyczące pisania metod init w Objective-C.
Widzę to wszędzie (kod Apple'a, książki, otwarty kod źródłowy itp.), Że metoda init powinna sprawdzić, czy self = [super init] nie jest zerowe, zanim przejdziemy do inicjalizacji.
Domyślny szablon Apple dla metody init to:
- (id) init
{
self = [super init];
if (self != nil)
{
// your code here
}
return self;
}
Czemu?
Mam na myśli, kiedy init kiedykolwiek zwróci zero? Jeśli zadzwoniłem do init na NSObject i odzyskałem zero, to coś musi być naprawione, prawda? W takim przypadku równie dobrze możesz nawet nie napisać programu ...
Czy to naprawdę tak powszechne, że metoda init klasy może zwrócić zero? Jeśli tak, w jakim przypadku i dlaczego?