ios - Why do we need to override superclasses' designated initializer -


in aaron hillegass' objective-c programming book, gives few rules on writing custom init methods. 1 of rules "if designated initializer of class different designated initializer of superclass, must override superclass' designated initializer calls new designated initializer (of new class)"

why mandated. issues see instance variables in class initialized null until explicitly initialize them using setter. problem that?

this because every initializer class must go through designated initializer class, ensures common setup occurs in 1 place. even superclass' designated initializer should go through subclass' one, should make designated, otherwise setup occurring in designated initializer missed naïve clients calling different initializer.


Comments