/ / Przesłanianie wyznaczonego inicjalizatora - ios, cel-c

Przesłanianie wyznaczonego inicjalizatora - ios, cel-c

Po podklasie klasy z wyznaczonyminicjator (powiedzmy initWithNibName: bundle: podklasa UIViewController), i musisz podać swój własny wyznaczony inicjator, książka "Big Nerd Ranch" mówi, aby dostarczyć własny wyznaczony inicjator i zastąpić wyznaczony inicjator superklasy, aby wywoływał twój nowy wyznaczony inicjator . Ale co zrobić, gdy dodatkowe parametry są wymagane?

Konkretnie, coś takiego:

@interface MyViewController : UIViewController

- (instancetype)initWithNibName:(NSString *)nibNameOrNil
bundle:(NSBundle *)nibBundleOrNil
andDummyObj:(DummyObj*)p
withDelegate:(id<DummyObjEditDelegate>)delegate;

@end

Sądzę, że chodzi o nadpisanie superklasydelegate to poprawnie skonfigurować moją podklasę, jeśli jest ona przywrócona z pliku nib ?, ale jeśli ktoś wywoła wyznaczoną inicjalizację klasy nadrzędnej, nie będzie w stanie zapewnić delegata i muszę to poprawnie ustawić.

Dzięki.

Odpowiedzi:

0 dla odpowiedzi № 1

Powinieneś udokumentować wymagania dotyczące używaniaclass, a jeśli potrzebujesz parametrów, powinieneś rzucić wyjątek, jeśli nie są one dostarczane (które powinny być zawsze podnoszone podczas programowania).