Corsi di programmazione web e mobile online
Pagina 2 di 2 PrimaPrima 12
Risultati da 11 a 13 di 13

Discussione: metodi non visibili da sottoclassi

  1. #11
    Administrator L'avatar di ignazioc
    Data Registrazione
    Jul 2010
    Messaggi
    3,912
    Corso online di programmazione android e java
    @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.

    La mia libreria su anobii e la wishlist su amazon.co.uk e il mio hosting provider

  2. #12
    Senior Member L'avatar di neronorx
    Data Registrazione
    Aug 2011
    Località
    torino
    Messaggi
    1,587

    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ò

  3. #13
    Senior Member L'avatar di neronorx
    Data Registrazione
    Aug 2011
    Località
    torino
    Messaggi
    1,587

    metodi non visibili da sottoclassi

    Corso online di programmazione android e java
    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
  •