
-
@neronorx capisco la tua esigenza ma purtroppo non c'è una soluzione facile.
Quello che tu chiedi è che una subclass non possa fare l'override di un metodo perché altrimenti "rompe" la tua superclasse, giusto?
Una possibile soluzione è verificare all'interno del metodo stesso di che tipo è l'oggetto "self" e sollevare una eccezione se è diverso dalla tua classe ( if NSStringFromClass([self class]) isEqualToString....) ma siamo sicuri che sia la soluzione corretta? Pensa ad esempio al metodo "init"...è chiaro che se tu fai l'override di un metodo init e dentro non scrivi nulla hai rotto la superclasse...oppure al metodo "setBackgroundColor:" se tu fai l'override e invece di settare il colore di sfondo fai qualcos altro...sono biiip tuoi
Quello che ti consiglio è di esplicitare come possibile che in caso di override deve essere chiamato lo stesso metodo sulla superclasse ([super faiqualcosa]) e stop.
-
metodi non visibili da sottoclassi
Hai centrato il punto,diciamo che per ora ho modificato la gerarchia,risolvendo quel problema,ma non appena risolverò un'altro che mi sono creato ,ritornerò
-
metodi non visibili da sottoclassi
Ho letto meglio il tuo post Ignazio.
Immagina che tu voglia creare la classe NSstring,dopo crei la sottoclasse NSMutableString, poi decidi di creare un metodo -(void)pincoPallino alla classe NSString ma che non debba essere visto dalle sue sottoclassi.
Di modo che tu possa digitare [ObjNsstring pincopallino] e non possa mai digitare (non eseguire) [objNSMutableString pincopallino]
All'inizio avevo pensato a un'estensione,ma ahimè viene vista dalla sottoclasse.
In breve per farti capire ho creato un oggetto che utilizza un picker per poi inserirlo nella tableviewcell,poi una sottoclasse con lo stesso picker ma con funzioni differenti come la data. Questi 2 oggetti hanno lo stesso picker ma con funzioni diverse e cosa più importante i block diversi.
Quando voglio usare l'oggetto sottoclasse con il picker data, poi vado a digitare il metodo con il block ,mi vede anche il block della superclasse e questo non mi piace.
Permessi di Scrittura
- Tu non puoi inviare nuove discussioni
- Tu non puoi inviare risposte
- Tu non puoi inviare allegati
- Tu non puoi modificare i tuoi messaggi
-
Regole del Forum