Corsi di programmazione web e mobile online
Pagina 1 di 2 12 UltimaUltima
Risultati da 1 a 10 di 13

Discussione: metodi non visibili da sottoclassi

  1. #1
    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
    Approfitto per dare a tutti un buon augurio di buon anno.
    Voglio pulire un bel progettino,ma mi servirebbe questo:
    ho una famiglia di Classi :
    Root :NSObject
    Child:Root
    SubChild :Child
    etc...
    la classe Root ha un metodo -(void)faiQuesto; che dev'essere visto dall'esterno ,quindi dichiarato in .h ma non voglio che sia subClassato, quindi se mi trovo in viewController non voglio che se allochi la classe SubChild,venga visto il metodo "faiQuesto",ma solo se alloco la classe Root.
    Mi spiego meglio con questo esempio
    Codice:
    Solo gli utenti registrati possono visualizzare il codice. Only registered members can view code.
    Ultima modifica di neronorx; 01-01-15 alle 22:32

  2. #2
    Junior Member
    Data Registrazione
    Jun 2011
    Messaggi
    46
    In Objective-C puoi usare l'estensione privata in testa al .m (la sezione racchiusa tra @interface e @end prima di @implementation).
    Buon anno anche a te.
    Ultima modifica di aramis; 02-01-15 alle 07:52

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

    metodi non visibili da sottoclassi

    Si ma in quel caso il metodo non è accessibile dall'esterno,per ora ho risolto creando una classe padre con 2 figli,così un figlio non eredita i metodi dell'altro figlio,ma entrambi sono accessibili dall'esterno

  4. #4
    Junior Member
    Data Registrazione
    Jun 2011
    Messaggi
    46
    In questo caso puoi usare le Categorie.
    Ad esempio se hai una classe C1, puoi definire la categoria C11, con il .h
    Codice:
    Solo gli utenti registrati possono visualizzare il codice. Only registered members can view code.
    Le sottoclassi di C che importano C1 non vedono il metodo m11 mentre nelle altre classi potrai importare la categoria ed usare il metodo.
    Ad esempio
    Codice:
    Solo gli utenti registrati possono visualizzare il codice. Only registered members can view code.
    con l'implementation
    Codice:
    Solo gli utenti registrati possono visualizzare il codice. Only registered members can view code.
    questo però per solo spirito di approfondimento. Nel caso del tuo esempio sono d'accordo con te che la soluzione migliore sia quella di strutturare diversamente la gerarchia.

  5. #5
    Senior Member L'avatar di neronorx
    Data Registrazione
    Aug 2011
    Località
    torino
    Messaggi
    1,587
    Avevo già provato con le categorie,senza risultato però,ho ripreso i miei vecchi ebook cercando qualcosa che mi aiutasse,e la categoria à stata la prima cosa che mi è venuta in mente.
    Ma quando nel viewController importavo tutti gli oggetti,importando anche la categoria,l'oggetto figlio,importava anche il metodo che non doveva importare.

  6. #6
    Senior Member L'avatar di neronorx
    Data Registrazione
    Aug 2011
    Località
    torino
    Messaggi
    1,587
    è come se fosse che vuoi aggiungere un metodo alla classe NSString ma non alle sue sottoclassi

  7. #7
    Junior Member
    Data Registrazione
    Jun 2011
    Messaggi
    46
    Nelle sottoclassi devi importare solo la classe originale senza la categoria.
    Nel progetto allegato
    C1: la classe originale
    C12: (nel file C1+C12) è la sua categoria che dichiara ed implementa il metodo m11
    C2: la sottoclasse di C1, importa C1 e non vede il metodo m11
    C3: un'altra classe che importa C1+C12 e può accedere al metodo m11

    provacat.zip

  8. #8
    Senior Member L'avatar di freellino
    Data Registrazione
    Dec 2010
    Località
    bari
    Messaggi
    1,277
    @protected ed @private dovrebbero limitare la visibilità.

    francesco

  9. #9
    Senior Member L'avatar di neronorx
    Data Registrazione
    Aug 2011
    Località
    torino
    Messaggi
    1,587
    @protected e @private servono per le variabili di istanza,non per metodi,l'esempio delle categorie devo ancora vederlo,ma ieri le ho provate di tutte.

  10. #10
    Senior Member L'avatar di neronorx
    Data Registrazione
    Aug 2011
    Località
    torino
    Messaggi
    1,587
    Corso online di programmazione android e java
    Ecco cosa sto facendo,non ditemi che ce ne sono già fatti ,perché molti sono complessi nell'uso,e quelli semplici non hanno funzionalità che molte volte servono.
    Questa classe fa uso di blocchi,recupera i valori settati per poi modificare le proprietà di un'oggetto.
    Può essere utile nel creare form anagrafici,impostazioni di app etc....
    Che ve ne pare? Schermata 2015-01-02 alle 18.37.05.jpg

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
  •