Ho un un'applicazione per iPhone in quale classe Un è una sottoclasse di UIViewController:Come posso ereditare una classe personalizzata da più superclassi?
Ora sto creando una nuova applicazione, in cui voglio riutilizzare A, ma ce l'ha sottoclasse da B, che va bene, perché B sottoclassi da UIViewController:
Ma ora ho un'altra classe, C, che è una sottoclasse di GLKViewController:
Il problema viene quando provo a fare una terza applicazione che ri- utilizza B senza alcuna modifica. Dal momento che B eredita da UIViewController, ho bisogno di dire in qualche modo C che dovrebbe ereditare da Be daGLKViewController, che credo sia un caso di ereditarietà multipla:
Da quello che sto leggendo, il modo migliore per gestire questo è con composizione, ma non capisco come applicarlo al meglio alla mia situazione n.
come soluzione stand-in, ho capito che potevo basta creare un involucro classe D cui posso quindi modificare su base app-by-app per creare una sottoclasse dalla superclasse appropriata per il compito a portata di mano:
Ma che sembra tipo di hacky. C'è un modo migliore per farlo?
Che cos'è un UIScrollViewController? – jrturton
Che ne dici di usare una categoria su UIViewController invece di suddividerla in sottoclasse? Poiché UIScrollViewController eredita da UIViewController, la tua categoria sarebbe utilizzabile anche in caso di istanze di UIScrollViewController. Ow, e davvero ben formulata domanda +1 per quello! – Till
non è possibile farlo in Objective-C è single inheritance - come java usa un paradigma di composizione o delega –