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 № 1Powinieneś 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).